lunes, 4 de noviembre de 2019

Unidos por el SOPF



Es tradición en este blog aprovechar cuestiones surgidas en Twitter. La de hoy se basa en una planteada por Juan Carlos Amez, @juankaamez, el día 28 de septiembre de 2019.

¿Podríamos probar que para cualquier valor k existe siempre al menos un valor n que verifica que: sopf(n)=sopf(n+k)?

Como la cuestión directa puede tener una respuesta complicada, abordamos antes la inversa, que dado un N debamos encontrar el K correspondiente.

Recordemos: la función SOPF(N) es la suma de los factores primos de N tomados sin repetición. Así SOPF(6)=2+3=5 y SOPF(12)=5 también, porque ambos tienen los mismos factores primos 2 y 3.

Primera cuestión: Encontrar K para un N dado

Existe una forma sencilla de evaluar la función SOPF sin necesidad de descomponer N en factores primos. Su código para Excel puede ser este:


Public Function sopf(n)
Dim f, a, e, g

a = n
f = 2 ‘Esta variable recorrerá los primos
e = 0 ‘Aquí se sumarán los factores primos
g = 0 ‘Recogerá los divisores primos
While f <= a
While a / f = a \ f ‘Se encuentra un factor
g = f: a = a / f ‘Tomamos nota en g y eliminamos ese factor
Wend
If g <> 0 Then e = e + g: g = 0 ‘Se suman factores en SOPF
If f = 2 Then f = 3 Else f = f + 2 ‘Se buscan nuevos factores
Wend
sopf = e
End Function

Con ella podemos ir descubriendo ya las coincidencias en los valores de SOPF. En la tabla podemos comprobar algunas.


Queda claro en ella que comparten valores de SOPF aquellos números que coinciden en sus factores primos sin contar repeticiones. Los tres primeros se basan en 2+3=5, los segundos en 3+7=10 y los últimos en 2+5=7.

Basta restar dos de ellos para tener una solución a la primera cuestión:

SOPF(6)=SOPF(6+6)=SOPF(6+138)
SOPF(21)=SOPF(21+42)=SOPF(21+126)

Esto resuelve la cuestión para un N dado y K desconocido: los valores posibles de K para un N dado son infinitos. Basta aumentar los exponentes de los factores primos de N y después restar.

Esto tiene una traducción a fórmula: 
Es decir, serán valores válidos de K aquellos formados por la descomposición factorial de N multiplicada a su vez por un producto similar al que restamos una unidad. Los exponentes r, s y t pueden ser nulos (salvo uno, para evitar la solución K=0)

Por ejemplo, para 12=22*3, K podría tener cualquiera de estas estructuras:

22*3*(23-1)=84, que equivaldría a

SOPF(12)=SOPF(12+84)=SOPF(96)=5

22*3*(2*3-1)=60, luego SOPF(12)=SOPF(12+60)=SOPF(72)=5

Así que la primera cuestión ya está resuelta, con la multiplicidad de soluciones de K `para cualquier N.

Segunda cuestión: Dado un valor de K, encontrar posibles valores de N

Esta cuestión es mucho más complicada, pues los valores de N no están acotados. Por ejemplo, para K=87654321, hemos encontrado un valor de N de 13761, lo que ha supuesto recorrer más de trece mil números. Efectivamente es una solución, porque

SOPF(13761)=153, ya que 13761=32*11*139, y 3+11+139=153.

y

SOPF(13761+87654321)=SOPF(87668082)=153, porque 87668082=2*39*17*131, con lo que SOPF(87668082)=2+3+17+131=153.

No parece sencillo demostrar que la conjetura planteada sea verdadera. Son muchas las coincidencias entre sumas de primos, como 29+5=31+3=34 y la herencia de los valores de SOPF que vimos en la primera cuestión, por lo que se puede confiar en que para todo K exista un N que cumpla SOPF(N)=SOPF(N+K). Pero demostrarlo es otra cuestión bien distinta.

Sí podemos presentarlo como conjetura, y esto es lo que figura en la página web

https://www.primepuzzles.net/conjectures/conj_025.htm

rotulada como conjetura 25. En ella puedes consultar algunos intentos de demostración de la misma.

Si no se sabe demostrar la conjetura, sí se puede establecer una búsqueda del mínimo valor de N para cada K. 

Esto lo tienes publicado en http://oeis.org/A065925, y ahí remiten a la conjetura 25. 

Los primeros valores de N son 5, 2, 7, 4, 114, 2, 5, 8, 13, 10, 25, 4, 5, 2, 19, 16, 85, 6, 5, 5, 209, 22, 25, 3, 493, 26, 31, 4, 20, 2, 5, 32, 7, 34, 516, 12, 33, 38, 10, 10, 99, 6, 5, 44, 57, 46, 25, 6,…

Aquí podemos comprobar la conjetura con dos herramientas. Para Excel usaremos una “atrevida” función, que encontrará N para un K dado. La llamamos así porque se basa en un bucle que puede no tener final si la conjetura es falsa, con lo que habría que detener Excel antes de que terminara el proceso. Su código es

Function dsopf(k)
Dim d, n
d = 0
n = 2
While d = 0 ‘En este while radica el peligro, ya que puede no detenerse
If sopf(n) = sopf(n + k) Then d = n
n = n + 1
Wend
dsopf = d
End Function

Se supone definida ya la función SOPF.
Esta función devuelve un 0 si no encuentra ningún valor de N. En realidad no lo devolvería, porque la ejecución no podría detenerse. Se ve que hemos confiado en la conjetura.

Con esta función es fácil reproducir la lista de valores de N publicada en OEIS:



También podemos probar con valores grandes de K, como el número de fecha de la Navidad de este año:

DSOPF(251219)=3256.

Comprobamos: SOPF(3256)=50, SOPF(251219+3256)=SOPF(254475)=50

Parece que podemos confiar en que la conjetura sea cierta. Como Excel tiene una capacidad limitada cuando trata con números grandes, traducimos la cuestión al lenguaje PARI:

sopf(n)= my(f, s=0); f=factor(n); for(i=1, matsize(f)[1], s+=f[i, 1]); s
dsopf(k)= my(d=0,n=2);while(d==0,if(sopf(n)==sopf(n+k),d=n);n+=1);d
print(dsopf(12345678910))

Puedes copiar este código y ejecutarlo en la página


Aquí tienes el resultado: 81147.



Cambiando el ejemplo 12345678910 por otro iríamos comprobando la conjetura para diversos valores.

Este número 12345678910 nos daría problemas de lentitud en Excel, pero hasta aquí sí puede con el problema:


Por si acaso, es preferible usar PARI para evitar los problemas de la coma flotante de Excel.

Esto es lo que podemos afirmar sobre la conjetura. Hay que agradecer a Juan Carlos Amez su propuesta, pues nos ha permitido estudiar un tema interesante.



jueves, 24 de octubre de 2019

Suma de cuadrados de las cifras (9) - Relaciones entre potencias

Esta entrada culmina la serie que hemos ido publicando sobre los cuadrados de las cifras en los últimos meses.


Surgen nuevas coincidencias de sumas de cuadrados de cifras si comparamos cualquier número con sus potencias o bien entre ellas. Es inevitable que este estudio conste de un conjunto de casos, ya que no hay una teoría general que lo respalde y hay que acudir a búsquedas un poco al azar.

Cifras de un número y su cuadrado

Normalmente, salvo las potencias de 10 y sus múltiplos más pequeños, no se perciben relaciones entre las cifras de un número y las de su cuadrado. Por ello, debemos acudir a las búsquedas. En este tema usaremos la función sumacifras con parámetro 2. Esta función ya la conoces si has leído los temas anteriores de esta serie.

Comenzaremos buscando números cuya suma de cuadrados de cifras coincida con la de su cuadrado.

Cuadrado con la misma suma

Si exigimos en Excel

sumacifras(N;2)=sumacifras(N^2;2)

o en PARI

norml2(digits(n))==norml2(digits(n^2))

obtendremos los números buscados. Son estos:


Figuran en la primera columna los cuadrados, en la segunda la suma común, y en la tercera el número buscado.

Con PARI usamos el código

for(i = 1, 30000,  if(norml2(digits(i^2)) == norml2(digits(i)), print1(i, ", ")))

Resulta el mismo listado que con Excel.


1, 10, 35, 100, 152, 350, 377, 452, 539, 709, 1000, 1299, 1398, 1439, 1519, 1520, 1569, 1591, 1679, 1965, 2599, 2838, 3332, 3500, 3598, 3770, 4520, 4586, 4754, 4854, 5390, 5501, 5835, 5857, 6388, 6595, 6735, 6861, 6951, 7090, 7349, 7887, 8395, 9795, 10000, 10056,

Esta sucesión estaba inédita y la hemos publicado en https://oeis.org/A309883.

Puedes comprobar que si K pertenece a la sucesión, K*10^p, con p entero positivo, también pertenece a la misma.

Como curiosidad, entre ellos hay capicúas, como 7887, 67476 y 93939.

También se encuentran números primos; 709, 1439, 5501, 5857, 7349, 10159, 14897, 17449, 25999,…

Los únicos términos menores que 100000 de la sucesión de Fibonacci son 1 y 377.

Así podríamos seguir.


Suma del cuadrado es el doble

Ahora veremos los números que son cuadrados y la suma de los cuadrados de sus cifras es el doble que la correspondiente a su raíz cuadrada. Por ejemplo:
504^2 = 254016.

Los cuadrados de las cifras de 504 suman 5^2 + 0^2 + 4^2 = 41.

La suma en su cuadrado es 2^2 + 5^2 +4^2 + 0^2 + 1^2 +6^2 = 82, que es el doble de 41.

Los primeros números que cumplen esto son:

72, 405, 504, 720, 722, 953, 1964, 2092, 2376, 2555, 2577, 2619, 4005, 4050, 4284, 4449, 4571, 5004, 5040, 5552, 5651, 5805, 6326, 6615, 7200, 7218, 7220, 7676, 8355,…

También aquí si K pertenece a la sucesión, K*10^p, con p entero positivo, también pertenece a la misma.

Puedes plantearte como ejercicio un código PARI para este caso.
64146 es el primer capicúa que cumple la condición:

64146^2=4114709316
6^2+4^2+1^2+4^2+6^2=105
4^2+1^2+1^2+4^2+7^2+0^2+9^2+3^2+1^2+6^2=210, que es el doble de 105.

Como en el caso anterior, aparecen primos:

953, 5651, 18251, 19913, 20129, 22691, 33587, 34487,…

Cubos con igual suma

De forma similar, podemos buscar aquellos números que coinciden con su cubo en la suma de los cuadrados de las cifras.

Adaptando las técnicas que usamos para los cuadrados, es fácil ver que los primeros con ese tipo de coincidencia son los de la tabla siguiente:


1
1
1
1000
1
10
405224
65
74
1000000
1
100
405224000
65
740
1000000000
1
1000

La primera columna está formada por los cubos, la tercera por las bases y la central por la suma común.

El listado de los primeros es el siguiente:

1, 10, 74, 100, 740, 1000, 3488, 7400, 10000, 23658, 30868, 34880, 47508, 48517, 52187, 58947, 59468, 67685, 68058, 74000, 76814, 78368, 78845, 84878,
100000

También esta sucesión estaba inédita, y la hemos publicado en https://oeis.org/A309884.

Se puede engendrar en PARI con:

for(i = 1, 10^6, if(norml2(digits(i^3)) == norml2(digits(i)), print1(i, ", ")))


Cubos con suma triple

Adjuntamos los resultados sin explicación:



76, 351, 760, 1167, 1338, 1717, 2494, 2822, 3184, 3510, 5056, 5827, 6092, 6166, 6183, 7046, 7175, 7261, 7600, 8162, 8306, 8347, 8842, 8853, 9862, 10064, 10067, 10447, 11048, 11285, 11559, 11670,

Por ejemplo, 76^3=438976, y se cumple:

7^2+6^2=85
4^2+3^2+8^2+9^2+7^2+6^2=255=85*3

En PARI:

for(i = 1, 2*10^4, if(norml2(digits(i^3)) == 3*norml2(digits(i)), print1(i, ", ")))

Cuadrados con cubos

Una vez abierto el camino, no es interesante recorrer muchos casos, por lo que paramos aquí. Estos son los primeros números en los que coinciden las sumas de cuadrados de las cifras en el cuadrado y el cubo:


1, 10, 100, 1000, 4313, 4847, 5407, 5911, 6856, 7414, 8366, 9317, 10000, 10949, 12234, 13514, 13579, 13943, 17294, 21648, 21969, 22156,…

Por ejemplo, el 4847:

4847^2=23493409 y

2^2+3^2+4^2+9^2+3^2+4^2+0^2+9^2=216

4847^3=113872553423 y

1^2+1^2+3^2+8^2+7^2+2^2+5^2+5^2+3^2+4^2+2^2+3^2=216


Con PARI

for(i = 1, 10^5, if(norml2(digits(i^2)) == norml2(digits(i^3)), print1(i, ", ")))

lunes, 14 de octubre de 2019

La función sigma y sus traslados


En esta entrada investigaremos los números enteros positivos tales que al sumarles k unidades, el valor de su función sigma (suma de divisores) no cambia, es decir:



Existen muchos ejemplos según los valores de k, y recorreremos algunos para destacar sus propiedades.

Será de utilidad repasar la fórmula de esta función según la descomposición factorial del número. Es la siguiente:




donde pi son los factores primos de N y ei sus exponentes. Cada factor también se puede interpretar como la suma de potencias del número primo correspondiente desde p0 hasta pe:


Una implementación sencilla (para Excel o Calc) de esta función es la siguiente, escrita en código VBasic, aunque en este blog se usa otra basada en la descomposición factorial:

Public Function sigma(n)
Dim i, s
i = 1
s = n ‘La sigma se inicia con el valor de n
For i = 1 To n / 2 ‘El máximo divisor propio posible es n/2
If n / i = n \ i Then s = s + i ‘Si es divisor, se suma
Next i
sigma = s
End Function

Caso K=1

No es difícil construir un bucle de búsqueda de números consecutivos con la misma sigma. Los primeros son estos:



Están publicados en http://oeis.org/A002961

A002961                            Numbers n such that n and n+1 have same sum of divisors.
14, 206, 957, 1334, 1364, 1634, 2685, 2974, 4364, 14841, 18873, 19358, 20145, 24957, 33998, 36566, 42818, 56564, 64665, 74918, 79826, 79833, 84134, 92685, 109214, 111506, 116937, 122073, 138237, 147454, 161001, 162602, 166934

En esta página se comenta que para valores de n < 2*10^10 el valor de sigma(n)/n está entre 1,5 y 2,25. No se sabe si esta sucesión es infinita.
Parece ser que 14 y 15 son los únicos semiprimos de la sucesión, y la sigma coincidente es 24 porque s(14)= s(2*7)=(1+2)(1+7)=3*8=24 y s(15)=s(3*5)=(1+3)(1+5)=4*6=24

Ni p ni p+1 pueden ser primos en esta sucesión. Si p fuera primo, sería s(p)=1+p, con lo que no podría alcanzar el valor de s(p+1). Si el que es primo es p+1, tendríamos s(p+1)=p+2, con lo que los divisores propios de p deberían sumar 2, lo que no ocurre nunca.

206 y 207 son los siguientes (no semiprimos en este caso), porque
s(206)= s(2*103)=(1+2)(1+103)=3*104=312 y
s(207)= s(3^2*23)=(1+3+9)(1+23)=13*24=312

El código PARI que figura en la publicación citada no es el más compacto. Se puede usar preferiblemente este otro:

for(p=1,20000,  if(sigma(p)==sigma(p+1), print1(p,", ")))

Hasta donde hemos explorado, la sigma común es múltiplo de 6.

Caso k=2

Aplicando la función sigma a dos números que se diferencien en dos unidades, resultan con resultados iguales los siguientes (primeras soluciones):

Como en el caso anterior, era de esperar que estuviesen ya publicados:

A007373                            Numbers n such that sigma(n+2) = sigma(n).
33, 54, 284, 366, 834, 848, 918, 1240, 1504, 2910, 2913, 3304, 4148, 4187, 6110, 6902, 7169, 7912, 9359, 10250, 10540, 12565, 15085, 17272, 17814, 19004, 19688, 21410, 21461, 24881, 25019, 26609, 28124, 30592, 30788, 31484, 38210, 38982, 39786, 40310,

En esta sucesión, al igual que en la anterior, no hay primos, y parece que tampoco cuadrados. Las sigmas comunes que aparecen, también son múltiplos de 6 en este caso.

Sí figuran semiprimos en esta sucesión (las dos últimas columnas son los factores primos de las dos primeras. Al ser semiprimos, los exponentes de cada corchete son iguales a 1):


Por ejemplo, s(4187)=(1+53)(1+79)=4320 y s(4189)=(1+59)(1+71)=4320
Abreviamos. Para el siguiente caso tenemos:


CASO K=3




También están publicados.

A015861                            Numbers n such that sigma(n) = sigma(n + 3).                     
382, 8922, 11935, 31815, 32442, 61982, 123795, 145915, 186615, 271215, 442362, 554715, 560382, 580635, 964535, 1191575, 1243375, 1369302, 1539942, 1642795, 2616702, 3141215, 3299062, 3556035, 3716895, 4201015, 5148294 (list; graph; refs; listen; history; text; internal format)

Por último el caso de diferencia 4:


No añadimos detalles.
A015863                            Numbers n such that sigma(n) = sigma(n + 4).                     
51, 66, 115, 220, 319, 1003, 2585, 4024, 4183, 4195, 5720, 5826, 5959, 8004, 8374, 11659, 12367, 12561, 13581, 14338, 15365, 16116, 17840, 18718, 20541, 25130, 29393, 30170, 32665, 36516, 39913, 40660, 42423, 42922, 47841, 49762 (list; graph; refs; listen; history; text; internal format)
Los casos k=5 y k=6 estàn también publicados. Dejamos esta primera cuestión.

Para investigar otros casos (por ejemplo, el 22) puedes construir un bucle (lo desarrollamos en VBasic) similar al siguiente:

For n=1 to 10000 ‘Hemos escrito 10000 como ejemplo
K=22 ‘El 22 también es un ejemplo
If sigma(n)=sigma(n+k) then msgbox(n) ‘Si coinciden las sigmas, lo presentamos
Next n

Ordenando la búsqueda nos ha resultado


Así puedes proceder en otros casos.

Diferencias que no se dan

Podemos investigar si desde 1 hasta m existen números que no cumplan la propiedad para un valor de k. Podría ser esta, que devuelve las diferencias que no se dan:

Public Function norepitesigma(m, k)
Dim i, s
Dim norepe As Boolean

i = 1: norepe = True: s = 0
While i <= m And norepe
If fsigma(i, 1) = fsigma(i + k, 1) Then norepe = False: s = i
i = i + 1
Wend
norepitesigma = s
End Function

Para valores menores que 10000 estas son las primeras diferencias que no se dan (hay más):



Probamos con 100000 y las diferencias de la tabla anterior inferiores a 5000 desaparecen. Esto nos hace sospechar que, dada una diferencia entre números con sigmas iguales, se alcanza siempre un valor para el que es válida esa diferencia. Para verlo mejor podríamos invertir el punto de vista: dada una diferencia, averiguar en qué número se da. Este problema no tiene cota de búsqueda, por lo que la efectuaremos con cotas fijadas por nosotros. Podemos usar:

Public Function tienesigmacomun(n, c)
'Para una diferencia n, creamos un bucle con cota c hasta que aparezca esa diferencia
Dim k, s
Dim notiene

k = 1: notiene = True: s = 0
While notiene And k < c ‘Avanzamos si no aparece o llegamos a la cota
If fsigma(k, 1) = fsigma(n + k, 1) Then notiene = False: s = k
k = k + 1
Wend
tienesigmacomun = s
End Function

Con esta función podemos desechar las diferencias de la tabla anterior. Todas ellas aparecen con una cota de 100000:



Esto nos hace sospechar que todas las diferencias que planteemos terminarán por aparecer para algún valor.

Lo puedes investigar en PARI:

tiene(n)=local(c=100000,nr=1,k=1,s=0);while(nr==1&&k<c,if(sigma(k)==sigma(k+n),nr=0;s=k);k+=1);s
for(i=1,50000,if(tiene(i)==0,print(i))


Este código recorre desde 1 hasta 50000 para encontrar números que no puedan ser diferencias de sigmas con cota 100000. Descubre dos casos en los que no aparecen con esa cota 100000, que son 20160 y 22680, pero aparecen en los números 100776 y 113373 respectivamente. Esto nos hace esperar que todos los números, buscando lo suficiente, podrán ser diferencias de otros números con sigmas equivalentes.

Cambiando los parámetros 1000000 y 5000 puedes intentar descubrir si alguna diferencia no aparece nunca para una cota de 1000000 o mayor. Con esta cuestión abierta terminamos el tema.

jueves, 3 de octubre de 2019

Sumas de cuadrados de cifras (8) -Números de Smith 2º orden



(Durante el descanso veraniego de 2019 han surgido para este blog nuevas propiedades sobre la suma de los cuadrados de las cifras. Se llevan publicadas siete entradas sobre este tema, más otras cuatro dedicadas a las iteraciones. Aunque su publicación se ha interrumpido durante dos meses, es interesante dar a conocer estas nuevas surgidas con posterioridad al proyectado cierre de la serie)


Números de Smith de segundo orden
Este concepto de “número de Smith de segundo orden” no parece que se use mucho, porque no figura como tal en las páginas tipo Wikipedia o Mathworld. Hemos tomado esta notación de la página
http://www.shyamsundergupta.com/smith.htm




En realidad, en esa sucesión, como veremos más adelante, no figuran todos los números que consideraremos aquí.

Los números que sí son populares y figuran en muchas publicaciones son los números de Smith de primer orden (http://oeis.org/A006753). Son aquellos en los que la suma de las cifras del número coincide con la suma del mismo cálculo en sus factores primos. Albert Wilansky los nombró números de Smith por su cuñado Harold Smith que tenía el número de teléfono 4937775 y presentaba esta propiedad, es decir

4937775 = 3.5.5.65837

4 + 9 + 3 + 7 + 7 + 7 + 5 = 3 + 5 + 5 + (6 + 5 + 8 + 3 + 7) = 42

Puedes encontrar mucho material sobre ellos en la página 


Los números que proponemos aquí poseen la misma propiedad pero con cuadrados. Así, 822=2*3*137, y la suma de los cuadrados de las cifras de 822 coincide con la suma de las de sus factores:

8^2+2^2+2^2 = 72 y 2^2+3^2+1^2+3^2+7^2=72.

Puedes encontrar muchos de ellos en la sucesión http://oeis.org/A174460, aunque en ella se exige la no coincidencia de dígitos, que no consideraremos aquí.

Búsqueda de números de Smith de segundo orden

Podemos usar la factorización de un número y nuestra función sumacifras(n;2). Hemos creado la función sum2factores, que encuentra los factores primos de un número con multiplicidad y va tomando nota de la suma de sus cifras al cuadrado:

Public Function sum2factores(n)
Dim f, a, e

a = n ‘Copia el valor de n
f = 2 ‘Recogerá los factores primos
e = 0 ‘Recogerá la suma de las cifras al cuadrado
While f <= a
While a / f = a \ f ‘Ve si es divisor
a = a / f: e = e + sumacifras(f, 2)’ Si lo es, suma los cuadrados de las cifras
Wend
If f = 2 Then f = 3 Else f = f + 2 ‘Siguiente factor, que será primo por la división a=a/f
Wend
sum2factores = e ‘Suma total
End Function

Con esta función basta buscar los números en los que coinciden las sumas de los cuadrados de las cifras, tanto las propias como las de los factores. Sólo buscaremos entre los números compuestos, como era de esperar.

Los primeros resultados son



En la tabla figuran, en la segunda columna, las sumas de cuadrados de cifras que son coincidentes. Por ejemplo, en 4823 figura la suma 93 y los factores 7, 13, 53 (los segundos números son exponentes), y, efectivamente:

4^2+8^2+2^2+3^2=93 y 7^2+1^2+3^2+5^2+3^2=93

En forma de listado:

56, 58, 810, 822, 1075, 1111, 1255, 1519, 1752, 2145, 2227, 2260, 2483, 2618, 2620, 3078, 3576, 3653, 3962, 4336, 4823, 4974, 5216, 5242, 5386, 5636, 5719, 5762, 5935, 5998, 6220, 6424, 6622, 6845, 7015, 7251, 7339, 7705, 7756, 8460, 9254, 9303, 9355,…
Están repartidos en dos sucesiones, http://oeis.org/A174460

A174460              Smith numbers of order 2.               7
56, 58, 810, 822, 1075, 1519, 1752, 2145, 2227, 2260, 2483, 2618, 2620, 3078, 3576, 3653, 3962, 4336, 4823, 4974, 5216, 5242, 5386, 5636, 5719, 5762, 5935, 5998, 6220, 6424, 6622, 6845, 7015, 7251, 7339, 7705, 7756, 8460, 9254, 9303, 9355, 10481, 10626, 10659

1111, 1255, 12955, 17482, 25105, 28174, 51295, 81229, 91365, 100255, 101299, 105295, 107329, 110191, 110317, 117067, 124483, 127417, 129595, 132565, 137281, 145273, 146137, 149782, 163797, 171735, 174082, 174298, 174793

Nosotros unificamos las dos, pues nos parece más sencillo y directo.

Podemos acudir también al lenguaje PARI:

sum2cifras(n)=norml2(digits(n))
sum2factor(n)=local(f, s=0); f=factor(n); for(i=1, matsize(f)[1], s+=sum2cifras(f[i, 1])*f[i,2]); s
for(i=1,10000,if(sum2cifras(i)==sum2factor(i)&&isprime(i)==0,print1(i,", ")))

Es una traducción de nuestro procedimiento. Con este código se repiten los resultados:



Casos particulares

Dentro de este listado podemos investigar algunos tipos particulares de números, que coinciden con los que solemos considerar en este blog.

Semiprimos

Estos son los primeros números de Smith de segundo orden que son semiprimos. Para encontrarlos basta añadir la condición de que posean solo dos factores primos.



En Excel hemos añadido la condición essemiprimo y en PARI con bigomega(n)==2:

for(i=1,100000,if(sum2cifras(i)==sum2factor(i)&&isprime(i)==0&&bigomega(i)==2,print1(i,", ")))

58, 1111, 1255, 2227, 2483, 3653, 5242, 5386, 5935, 5998, 7251, 7339, 9355, 10481, 12381, 12813, 12955, 14359, 16586, 16658, 16757, 16941, 17349, 17482, 18215, 18273, 18566, 19271, 19641, 21815, 23867, …

Cuadrados

Los números de Smith de segundo orden que son cuadrados son mucho menos abundantes. Estos son los primeros:




Por ejemplo, 476100 es el cuadrado de 690, y se cumple:

4^2+7^2+6^2+1^2+0^2+0^2=102

690=2*3*5*23

2^2+3^2+5^2+2^2+3^2+2^2+3^2+5^2+2^2+3^2=102

Tienen la ventaja algorítmica de que en los bucles FOR-NEXT podemos usar i*i en lugar de i, con lo que los cálculos son mucho más rápidos.

En PARI

for(i=1,30000,n=i*i;a=norml2(digits(n)); s=0;f=factor(n); for(k=1, matsize(f)[1], s+=sum2cifras(f[k, 1])*f[k,2]);if(a==s,print1(n,", ")))

209764, 476100, 729316, 908209, 1081600, 6230016, 9909904, 11404129, 11799225, 12068676, 13242321, 15007876, 23765625, 29170801, 31933801, 39601849, 40627876, 41563809, 42902500, 49449024, 54434884, 61121124, 78216336, 78801129, 103795344, 110838784, 116380944, 128595600, 132917841, 134026929, 137569441, 151363809, 158206084, 161976529, 163175076,

Triangulares

Para encontrar los triangulares, basta organizar un bucle con i*(i+1)/2. Resultan los siguientes:




Con PARI:

sum2cifras(n)=norml2(digits(n))
sum2factor(n)=local(f, s=0); f=factor(n); for(i=1, matsize(f)[1], s+=sum2cifras(f[i, 1])*f[i,2]); s
for(i=1,10000,n=i*(i+1)/2;if(sum2cifras(n)==sum2factor(n),print1(n,", ")))

3, 2145, 163306, 191271, 248160, 561270, 591328, 860016, 1017451, 1296855, 1355481, 2372931, 2713285, 3386503, 3517878, 3755170, 3899028, 3932610, 4074085, 4247155, 4683330, 4717056, 4750903, 5076891, 5546115, 5680135, 6917340, 6928503, 7172578, 7571886, 8547045, 8650720,…


Cubos

Por último, como ejemplo de búsquedas que se pueden emprender, los primeros cubos que son números de Smith de segundo orden. Dejamos como ejercicio su obtención.




Con PARI:


1601613, 76225024, 1302170688, 1556862679, 1745337664, 4427101288, 14331199589, 36198994112, 47124116928, 48149090072, 56006043976, 57289251375, 64481201000, 66037242088, 72772859375, 96955616584, 149467669443, 197849544283, 262266899201, 262389836808, 386464682304, 484661551375, 574270627328, 761048497000, 795052191744, 841499753121,…

Aquí dejamos los casos. Puedes seguir investigando en esta dirección.