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.