Mostrando entradas con la etiqueta Dando vueltas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Dando vueltas. Mostrar todas las entradas

miércoles, 4 de septiembre de 2024

Diferencias de cubos enteros positivos

Algunos números enteros positivos son diferencia de dos cubos, también enteros y positivos. Por ejemplo, 3367 lo es de tres formas diferentes: 3367=343-333=163-93=153-23. Otros números, como 8624, no coinciden con ninguna diferencia de  cubos. En esta entrada aprenderemos a descubrir ejemplos y estudiar algunos casos especiales.

Cuando se trata con diferencias, el estudio previo que se debe emprender es el de encontrar una cota para los números que se restan. En este caso, además de ello, podremos añadir una condición que deban cumplir minuendo y sustraendo. Es un tema algebraico sencillo en este caso. Llamemos a+k a la base del cubo mayor y a a la del menor, siendo además N el valor de la diferencia entre ambos cubos. Tendremos entonces:

(a+k)3- a3 = 3a2k+3ak2+k3 = k(3a2+3ak+k2) = N

Esta igualdad nos indica que N ha de ser múltiplo de k. Esto nos da una cota para la diferencia entre bases, junto con la condición de que sea un divisor de N. Por otra parte, no es difícil acotar las bases de los cubos:

3a2+3ak+k2 = N/k

3a2 < 3a(a+k) = N/k-k2 < N/k

De aquí deducimos que una cota de a es la raíz cuadrada de N/(3k)

Si recorremos los valores de los divisores de N, obtendremos valores posibles de k, y con esta cota podremos encontrar valores de a para comprobar si (a+k)3- a3 = N

Estas condiciones se usan en la siguiente función de VBasic, que nos devolverá las descomposiciones en diferencia de cubos que presente un número N:

Function difcubos$(n)

Dim k, a, t, m
Dim s$

s = "" ‘Contenedor de soluciones
m = 0 ’Número de soluciones
For k = 1 To n / 2
If n / k = n \ k Then k ha de ser divisor de N
t = Sqr(n / k / 3) ‘Cota para a
For a = 1 To t

If (a + k) ^ 3 - a ^ 3 = n Then m = m + 1: s = s + "a=" + Str$(a) + " k=" + Str$(a + k) ‘Si es una solución, se incorpora
Next a
End If
Next k
If s = "" Then difcubos = "NO" Else difcubos = ajusta(m) + " " + s ‘Si no hay solución devuelve un NO
End Function

Con esta función encontraremos los números enteros que son diferencia de cubos, con el dato del número de soluciones que presenten. Por ejemplo, en la siguiente tabla figuran los resultados desde 720 hasta 730:


Observamos que sólo dos números cumplen la condición, y, en este caso, con dos soluciones cada uno. Las diferencias son divisores de N. En el caso de 721, son 1 y 7, y, en el caso de 728, 2 y 8, divisores en ambos números.

Una idea nos viene al momento, y es que si N es primo, la única diferencia posible es 1:

Si un número primo es diferencia de dos cubos, ambos han de ser consecutivos.

Lo comprobamos con la función anterior añadiendo la condición de ser primo:


Se trata de los “primos cubanos”, que son objeto de estudio en otra entrada en nuestro blog

(ver https://hojaynumeros.blogspot.com/2024/03/primos-cubanos.html

Están publicados también en https://oeis.org/A002407

Los primeros números que son diferencia de cubos de una, dos o tres formas son estos:

7, 19, 26, 37, 56, 61, 63, 91, 98, 117, 124, 127, 152, 169, 189, 208, 215, 217, 218, 271, 279, 296, 316, 331, 335, 342, 386, 387, 397, 448, 469, 485, 488, 504, 511, 513, 547, 602, 604,

Están publicados en https://oeis.org/A038593, y parece ser que serán muy raros los que presenten más de tres soluciones. Como en nuestra función el primer carácter representa el número de soluciones, no es difícil separar esta tabla según este dato.

Una sola solución:

https://oeis.org/A014439

Dos diferencias de cubos:


https://oeis.org/A014440

Tres diferencias:

Observamos que van disminuyendo los casos.

Ver https://oeis.org/A014441

Segunda versión de búsqueda

En la función propuesta hemos usado un bucle de búsqueda para k y otro para a. Este último se puede evitar despejando a en 3a2+3ak+k2-N/k. Así lo hemos efectuado en PARI, y se consigue más velocidad de proceso, pero para números con tres soluciones sigue siendo lento. Lo copiamos aquí por si alguien desea experimentar:

difcubos(n)={my(m=0,k,a,q);for(k=1,n/2,if(n%k==0,q=9*k^2-12*(k^2-n/k);if(issquare(q),a=(-3*k+sqrt(q))/6;if(a==truncate(a)&&a>0,m+=1))));m}

for(i=1,10^6,if(difcubos(i)==3,print(i)))

Se exige en él que a sea entera y positiva. Cambiando el 3 de la última línea se puede intentar buscar números con cuatro soluciones, si se dispone de un equipo potente.

Casos particulares en la diferencia

En nuestras publicaciones en Twitter o X nos aparecen casos en los que un cuadrado y un cubo están relacionados por una identidad. En este apartado comenzaremos por estudiar el caso en el que una diferencia de cubos es cuadrada. Para ello cambiaremos un poco nuestra función básica, en el sentido de exigir al principio que N sea un cuadrado. El resultado, ya conocido, es


La segunda columna está publicada en
https://oeis.org/A038597

Hay un caso interesante en la tabla, y es 14^3-7^3=7^4, y esto nos anima a buscar otras diferencias entre cubos que sean potencia de cualquier exponente. Para ello disponemos de la función en Excel ESPOTENCIA, que devuelve el exponente mínimo de una potencia, o cero si no es de ese tipo. Con ella encontramos diferencias que son cuartas potencias:


Con esta búsqueda hemos descubierto una propiedad interesante: si N es diferencia entre dos cubos, su cuarta potencia también lo es:


La razón es sencilla: Si en una diferencia de cubos con resultado N multiplicamos ambos cubos por N
3, resultará otra diferencia de cubos con resultado N4. Ocurrirá igual con N7 o N10.

Podemos observar que los datos de la cuarta columna coinciden con los de la segunda multiplicados por N.

Otros tipos de diferencias de cubos

Esta última parte del estudio la desarrollaremos con brevedad salvo que surja alguna propiedad interesante.

Diferencias que son números primos

Ya advertimos que, en este caso, las bases de los cubos han de ser consecutivas y los primos son los llamados “cubanos”:


Diferencias de cubos triangulares

Los primeros son estos:


No descubrimos particularidades, luego pasamos a otro caso.

Diferencia de cubos igual a suma de cubos

Aprovechando una pequeña función disponible, SUMCUBOS, se puede exigir que la diferencia de cubos coincida con la suma de otros dos. Los primeros resultados son:

Están publicados en https://oeis.org/A225908

Como se señala en esta página, estos datos dan lugar a identidades en las que un cubo es suma de otros tres, pues basta pasar de miembro el cubo que aparece restando:

6^3-4^3=3^3+5^3 da lugar a 6^3=3^3+4^3+5^3.

Esto explica que en la segunda columna aparezcan repetidos tres veces algunos cubos mayores de cada caso, como el 6, el 9 o el 12, ya que la suma da lugar a tres diferencias.

 

jueves, 21 de enero de 2021

Terna pitagórica en la que el perímetro es múltiplo de uno de los catetos.

Hace unas semanas tuve ocasión de estudiar la terna pitagórica (9, 40, 41) y me llamó la atención el hecho de que la medida del cateto 9 dividía al perímetro 9+40+41=90. Me pregunté si existían muchos números con esa propiedad. Aquí tenéis mis búsquedas y razonamientos.

Al principio creí que sería un hecho más bien extraordinario, pero después de las primeras búsquedas me di cuenta de que existen muchos casos de este tipo, aunque son más abundantes aquellos en los que el perímetro no es múltiplo de ninguno de los catetos.

Solo tiene interés estudiar las ternas primitivas, en las que los tres lados son primos entre sí, porque si se cumple en una primitiva, también se cumplirá en sus derivadas, porque tanto el perímetro como los lados se multiplican por el mismo número, con lo que el carácter de múltiplo se conserva.

La primera terna en la que se cumple esto es la (3, 4, 5). Su perímetro es 12, y es múltiplo de 3 y 4.

La siguiente es (5, 12, 13), porque P=5+12+13=30, que es múltiplo de 5 (pero no de 12)

La primera terna en la que no se cumple es la (20, 21, 29), ya que el perímetro es 70, que no es múltiplo ni de 20 ni de 21.

Sospechamos, pues, que ninguno de los dos casos contrarios es excepcional.

Función de búsqueda

Hay dos formas de construir ternas primitivas. Una de ellas es la tradicional de buscar expresiones del tipo (2mn, m2-n2, m2+n2) con m y n primos entre sí y paridad distinta. Esta forma la dejamos para más adelante. Hemos visto que el algoritmo correspondiente no gana mucha velocidad.

(Ver este procedimiento en  https://es.wikipedia.org/wiki/Terna_pitag%C3%B3rica)

La otra forma es la que no usa esa teoría. Para una posible hipotenusa n, se descompone su cuadrado, si es posible, en suma de otros dos cuadrados enteros, y si las bases son primas entre sí y además el perímetro es múltiplo de uno al menos de los catetos, se cumplirá lo exigido. Lo plasmaremos en VBasic de Excel y más tarde en PARI.

Para Excel podemos usar la siguiente función de tipo texto. Su nombre recuerda cómo iniciamos la entrada, con un cateto 9 que dividía al perímetro 90.

Public Function cateto_div_terna$(n) 'n es la hipotenusa de la terna estudiada

Dim a, b, c, p, j, k

Dim s$

Dim noes As Boolean

 

a = n ^ 2 ‘Descomponemos n^2 en dos cuadrados

j = 1

b = 1: c = a - 1

s$ = ""

noes = True

j = 1 ‘Es la base del primer cuadrado

While j < n And noes

b = j ^ 2: c = a - b

If escuad(c) Then ‘Segundo cuadrado posible

k = Sqr(c)

p = n + j + k ‘Perímetro

If (p Mod j = 0 Or p Mod k = 0) And mcd(mcd(j, k), n) = 1 Then noes = False: s$ = Str$(n) + Str$(j) + Str$(k) + Str$(p)

‘La condiciones son que p sea múltiplo de j y de k y que todos sean primos entre sí.

Si se cumplen se recoge la solución en s$.

End If

j = j + 1

Wend

cateto_div_terna = s

End Function

 

Con esta función no es difícil recorrer números, quedarnos con la hipotenusa y reconstruir la terna. Aquí tienes las primeras soluciones:

Si continuamos buscando, llegaremos a una lista más extensa:

5, 13, 17, 25, 37, 41, 61, 65, 85, 101, 113, 145, 181, 197, 221, 257, 265, 313, 325, 365, 401, 421, 481, 485, 545, 577, 613, 677, 685, 761, 785, 841, 901, 925, 1013, 1025, 1105, 1157, 1201, 1297, 1301, 1405, 1445, 1513, 1601, 1625, 1741, 1765, 1861, 1937, 1985, 2113, 2117, 2245, 2305, 2381, 2501, 2521, 2665, 2705, 2813, 2917, 2965, 3121, 3137,

 La versión en PARI es una simple traducción de la de Excel. 

ok(k)={my(a=k^2,j=1,b=1,c=a-1,l,p, m=0);while(j<k&&m==0,b=j^2;c=a-b;if(issquare(c),l=sqrtint(c);p=k+j+l;if((p%j==0||p%l==0)&&gcd(gcd(j,l),k)==1,m=1));j+=1);m}

for(i=1,2000,if(ok(i),print1(i,", ")))

Su resultado coincide, como era de esperar, con el obtenido en Excel:


Hemos recorrido listas de ternas primitivas para seleccionar las que cumplen lo exigido, y se llega al mismo listado.

Estudio teórico

Tras la búsqueda a ciegas podemos plantearnos un estudio más profundo. Nos basaremos en la clásica fórmula de generación de ternas primitivas:

(2mn, m2-n2, m2+n2) con m y n coprimos y de distinta paridad.

En ese caso el perímetro P tendrá la fórmula P=2mn+m2-n2+ m2+n2=2m(m+n)

Se pueden dar tres casos:


1) El perímetro es múltiplo del cateto par

2m(m+n)/(2mn)=(m+n)/n=m/n+1

Al ser m y n coprimos y de distinta paridad, para que sea múltiplo ha de ser n=1 y m=2r, con lo que hipotenusa será m2+n2=4r2+1.

El perímetro será 4r+4r2+1+4r2-1=8r2+4r=4r(2r+1) y pertenecerá a http://oeis.org/A033586 y la diferencia entre hipotenusa y cateto mayor será de dos unidades.

Puedes verificar que todas las soluciones en las que el perímetro es múltiplo del cateto impar tienen esta forma. Así ocurre con el ejemplo con el 17, que forma la terna (8, 15, 17), en la que 17=4*22+1, el perímetro es 8+15+17=40, que es múltiplo de 8.

Por tener esta expresión, las hipotenusas correspondientes pertenecerán a http://oeis.org/A053755 y las primeras serán 5, 17, 37, 65, 101, 145, 197, 257, 325, 401,…


2) El perímetro es múltiplo del cateto impar

En ese caso hay que estudiar el cociente 2m(m+n)/(m2-n2)=2m/(m-n)=2+2n/(m-n), lo que obliga a que 2n/(m-n) sea entero. El denominador m-n ha de ser impar, luego ha de dividir a n y n/(m-n)=t será entero. Se deduce que n=(m-n)t; n(t+1)=m*t; n/t=m/(t+1)=k, lo que lleva a que k=1, pues en caso contrario, m y n no serían primos entre sí. Por tanto queda que n=t y m=t+1, es decir, que m y n son consecutivos. La hipotenusa quedaría como (n+1)^2+n^2.

Esto ocurre en el ejemplo del principio de esta entrada, (9, 40, 41): 41=52+42, 9=52-42; 40=2*4*5, y 41+40+9=90 es múltiplo del cateto impar.

Las hipotenusas de este tipo pertenecen a http://oeis.org/A001844

La terna quedará: (2mn, m2-n2, m2+n2)=(2n2+2n, 2n+1, 2n2+2n+1) y serán consecutivos la hipotenusa y un cateto

El perímetro será 2(n+1)(2n+1) y pertenecerá a http://oeis.org/A002939

Estos dos casos cubren toda la sucesión de hipotenusas que estamos estudiando.

Esto da lugar a otra función alternativa más rápida:

Public Function cateto2_div_terna(n) 'Da la hipotenusa para que el perímetro sea divisible

Dim b, c, j, k, a

Dim es As Boolean

 

j = 1

a = j ^ 2

es = False

While a < n And Not es

b = n - a

If escuad(b) Then ‘Se descompone n en suma de dos cuadrados

c = Sqr(b)

If c < j And (c = 1 And a Mod 2 = 0 Or Abs(j - c) = 1) Then es = True ‘Las dos condiciones

End If

j = j + 1: a = j ^ 2

Wend

cateto2_div_terna = es

End Function

 

Es interesante la intersección entre los dos casos:


3) El perímetro es múltiplo de los dos catetos

Es el caso del 5 y del 145, que cumplen las dos condiciones estudiadas. Es decir, en ellos se dará que

4r2+1=(n+1)^2+n^2

5=4*12+1=22+12

145=4*62+1=92+82

Desarrollando y despejando 4r2 tenemos: n2+2n+1+n2-1=2(n2+n) ha de ser un cuadrado (que será par con seguridad) y la hipotenusa una unidad mayor. Aquí tienes los primeros:


Resultan ser elementos de
http://oeis.org/A076218, pero con una definición alternativa.

 Si te gustan las ecuaciones diofánticas, puedes plantear lo siguiente:

 (n+1)2+n2=4r2+1; 2n2+2n+1=4r2+1; 4n2+4n+2=8r2+2; (2n+1)2-8r2=1.

 Esta es una ecuación de Pell, y la puedes resolver con nuestra hoja de cálculo

 http://www.hojamat.es/sindecimales/aritmetica/herramientas/hoja/pell.xls

 


 Los valores de X serán, según lo visto más arriba, iguales a 2n+1. Si les restamos 1 y los dividimos entre 2, resultarán los índices de la tabla de arriba y las soluciones serán del tipo n2+(n+1)2:

 


 Esta tabla completa el estudio, que ha resultado con más base teórica de la que podía pensarse al inicio de las búsquedas.

 

martes, 26 de noviembre de 2019

Iteración basada en la suma de cuadrados de cifras (5) - Alcances


Alcances entre números

Una cuestión amena es la de averiguar si un número de cierto tipo (primo, cuadrado, triangular,…) es alcanzable desde otro del mismo tipo mediante una recurrencia consistente en ir sumando a cada término el cuadrado de las cifras.
Por ejemplo, 23 es alcanzable desde 11, ambos primos, porque 13=11+1^2+1^2, 23=13+1^2+3^2

Todos los números sin ningún tipo especial son alcanzables, salvo los colombianos cuadráticos, ya estudiados aquí: 1, 3, 4, 5, 7, 8, 9, 10, 14, 15, 16, 18, 19, 21, 22, 25, 27, 28,…

El resto, por ejemplo el 6 y el 12 o el 13, son alcanzables desde otro número:

2+2^2=6, 3+3^2=12, 11+1^2+1^2=13.

Además, todos los son con un solo paso, pues basta elegir el último término de cualquier recurrencia.

Pasamos entonces a estudiar diversos tipos:

Números primos

Hemos preparado una función en Excel que nos puede ayudar a decidir si un número es alcanzable en el sentido que le hemos dado a la palabra. El listado que sigue es la versión entre primos, pero se cambia fácilmente por otro tipo:

Public Function alcance$(n)
'desde el final del alcance hacia atrás para ver si alguno lo alcanza
Dim i, j
Dim s$

If Not esprimo(n) Then alcance = "NO": Exit Function 'Si no es primo, renunciamos.
s$ = "" ‘Contendrá las soluciones
i = 1
While i <= n And s = ""
If esprimo(i) Then 'Puede ser otra condición
j = i
While j < n
j = j + sumacifras(j, 2)
If j = n Then s = s + Str$(i)
Wend
End If
i = i + 1
Wend
If s$ = "" Then s$ = "NO"
alcance = s
End Function

Si no existen soluciones, devuelve un “NO” y si las hay, el conjunto de ellas. Aquí tienes la función aplicada a los números primos entre 20 y 80:



Solo son alcanzables 23, 41 y 67. Ampliamos el rango de búsqueda para confeccionar una tabla. Aquí tienes los primeros primos alcanzables:



Los puedes obtener en PARI con un algoritmo similar al de Excel:

forprime(n=1,1000,s=0;i=1;while(i<=n&&s==0,if(isprime(i),j=i;s=0;while(j<n&&s==0,j=j+norml2(digits(j));if(j==n,s=1;write1("final.txt",n,", "))));i+=1))

13, 17, 23, 41, 67, 101, 103, 107, 113, 127, 131, 157, 163, 181, 191, 199, 227, 251, 263, 269, 271, 281, 311, 379, 421, 457, 461, 467, 499, 509, 521, 541, 547, 563, …

Final de la recurrencia

Podemos plantearnos la cuestión opuesta, la de si dado un número primo, llega a alcanzar a otro primo en la recurrencia. En este tipo de cuestiones el problema que solemos tener es el de fijar una cota de búsqueda. En la sucesión A094830 se nos da una pista, pues contiene los pasos que se han de dar para cada primo.

A094830              Start with x = n, repeatedly replace x with x + sum of squares of digits of x until you reach a prime; sequence gives number of steps.                  
1, 0, 0, 6, 0, 4, 0, 11, 5, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 5, 13, 9, 0, 4, 11, 12, 17, 3, 0, 8, 0, 8, 7, 1, 7, 3, 0, 5, 7, 4, 0, 3, 0, 3, 7, 8, 0, 2, 2, 2, 6, 3, 0, 10, 2, 3, 1, 3, 0, 3, 0, 2, 2, 18, 2, 11, 0, 2, 6, 9, 0, 10, 0, 1, 1, 2, 5, 1, 0, 16, 2, 8, 0, 3, 11, 6, 10, 2, 0, 4, 1, 15, 2, 1, 9, 2, 0, 7, 7, 1

Según esta tabla, el máximo número de pasos de recurrencia para números pequeños es de 18, contando primos y compuestos. Podemos buscar, por ejemplo, hasta 25 iteraciones y marcar aquellos primos en los que ese número sea insuficiente.

Entre los primos menores que 5000 aparecen ya ejemplos en los que no basta con 25 iteraciones:

167, 191, 1709, 1783, 1831, 4229, 4421, 4621, 4787, 4793, 4817, 4969, 4993

Si aumento a 50, prácticamente todos los primos de ese rango alcanzan a otro primo:



Podemos conjeturar que siempre se alcanza un primo, pero actualmente no se sabe si es cierto o no.

Son muchos los que se repiten en la segunda columna. Llama la atención la frecuencia con la que aparecen. Con una nueva función que no vamos a insertar aquí, descubrimos que esos números provienen de muchos inicios primos en la recurrencia. Por ejemplo, 10391 proviene de 243 recurrencias distintas.

Números cuadrados

Los primeros cuadrados alcanzables por otro cuadrado son estos:

 

En la primera columna el alcanzable y en la tercera el origen de la recurrencia
Hemos adaptado la función de alcance a cuadrados

Public Function alcance$(n)
Dim i, j, m
Dim s$


If Not escuad(n) Then alcance = "NO": Exit Function 'U otra condición
s$ = ""
i = 1
m = 0
While i * i <= n And s = ""
'If escuad(i) Then 'puede ser otra condición, e incluso i=i
j = i * i
While j < n
j = j + sumacifras(j, 2)
If j = n Then s = s + Str$(i): m = m + 1
Wend
'End If
i = i + 1
Wend
If s$ = "" Then s$ = "NO"
alcance = s$
End Function

Con PARI

for(n=1,500,m=n*n;s=0;i=1;while(i<=n&&s==0,j=i*i;while(j<m&&s==0,j=j+norml2(digits(j));if(j==m,s=1;print1(m,", ")));i+=1))

Obtenemos el listado:

81, 196, 1024, 1156, 1225, 1600, 3600, 4489, 4624, 5625, 7056, 7225, 10201, 12100, 13225, 13456, 15625, 28900, 37636, 40401, 43681, 46225, 50625, 55696, …

Problema inverso

Podemos estudiar hasta donde llega cada origen. Al igual que con números primos, conjeturaremos que todos los cuadrados finalizan en otro cuadrado con un número de pasos adecuado en la recurrencia.

Hemos ido aumentando el máximo de pasos en la misma y, si llegamos a 2000 iteraciones, aún quedan estos tres al menos:

197136, 200704, 201601

Con 5000 iteraciones, los que quedan fuera se acercan a 300000:

2961841, 2965284, 2968729,…

Por último, con 10000 iteraciones, todos los cuadrados inferiores a 9000000 alcanzan a otro cuadrado. Podemos conjeturar que los cuadrados terminan alcanzando a otro cuadrado.

Triangulares

Sólo insertaremos la tabla de los primeros triangulares alcanzables por otro triangular:

Como en otros temas parecidos, una vez que hemos construido funciones para las búsquedas importantes, detenemos aquí los posibles otros casos (cubos, oblongos,…) y los dejamos como ejercicio.

jueves, 23 de mayo de 2019

Sumas de cuadrados de cifras(7) - Otros casos particulares



Sigue la serie dedicada en este curso a la suma de los cuadrados de las cifras de un número entero positivo. Ya se han publicado seis, que puedes identificar porque su título comienza con “Suma de cuadrados de cifras”.

En esta entrada estudiaremos las relaciones de divisibilidad existentes entre un número, la suma de los cuadrados de sus cifras y la suma de las mismas y otros casos, como los números colombianos. Comenzamos por el caso más directo.

Números divisibles entre la suma de los cuadrados de sus cifras

Con nuestra función sumacifras, ya presentada en anteriores entradas, para encontrar estos números basta exigir que RESIDUO(N;SUMACIFRAS(N;2))=0, ya que si el resto de dividir ambos es nulo, se da la divisibilidad. Hemos procedido de esta forma, con el resultado:


Esta sucesión está publicada en http://oeis.org/A034087

A034087                            Numbers divisible by the sum of the squares of their digits.           
1, 10, 20, 50, 100, 110, 111, 120, 130, 133, 200, 210, 240, 267, 298, 310, 315, 360, 372, 376, 400, 420, 480, 500, 532, 550, 630, 803, 917, 973, 1000, 1010, 1011, 1020, 1030, 1071, 1100, 1101, 1110, 1134, 1148, 1200, 1211, 1222, 1290, 1300, 1302, 1316

Como es lógico, aparecen muchos números terminados en cero, porque esto facilita la divisibilidad.

Puedes reproducirlos usando PARI:

for(p=1,2000, a=norml2(digits(p)); if(p%a==0, print1(p,", ")))

Aquí el signo % equivale al resto o RESIDUO, y ves que le exigimos que valga cero.
Como en casos anteriores, si N pertenece a la sucesión, N*10k, también, porque la suma de cuadrados será la misma y N queda multiplicado, luego seguirá siendo divisible.

Como curiosidad, estos son los primeros cuyo cociente cumple una condición:

Cociente cuadrado

Aquí, a la condición de que RESIDUO(N;SUMACIFRAS(N;2))=0 añadimos que el cociente sea cuadrado.

Obtenemos:

1, 100, 315, 376, 400, 2511, 2575, 2688, 3312, 4114, 4416, 8256, 10000, 21250, 22869, 24624, 24832, 31500, 32634, 35584, 37600, 40000, 43639, 47232, 56250, 60164, 62208, 68229, 71344, 74360, 80625, 97336,…

Por ejemplo, 4114/(42+12+12+42) = 112

Lo puedes reproducir con PARI:

for(p=1,100000, a=norml2(digits(p)); if(p%a==0&&issquare(p\a), print1(p,", ")))

Otro ejemplo: 97336/(92+72+32+32+62) = 529 = 232

Cociente primo

De la misma forma, exigiendo que el cociente sea primo resultan:

20, 50, 111, 130, 133, 267, 298, 310, 550, 803, 917, 973, 1011, 1030, 1101, 1211, 1431, 1547, 2444, 2669, 2958, 3053, 3906, 5050, 6179, 7303, 8083, 8938, 10094, 10142, 10341, 11043, 11176, 11426, 12142, 12215, 12382, 12431, 12814, 13222, 13317, 13731, 13797, 14102,…

Por ejemplo, 298/(22+92+82)=2, que es número primo.

Y su código

for(p=1,20000, a=norml2(digits(p)); if(p%a==0&&isprime(p\a), write1("final.txt",p,", ")))


Comenzamos con el cociente 1. Sólo el número 1 coincide con la suma de los cuadrados de sus cifras.

Con el cociente  2 sólo aparecen 50 y 298, ya visto en el anterior apartado, al menos entre números menores que 2*106.

Con el cociente 3 sólo nos aparece el 267, en el que 267/(22+62+72)=3. Con el 4,  376, y con el 5, 20. No seguimos. Son fáciles de encontrar, pero no dan más de sí.


Números colombianos cuadráticos

Se llaman números colombianos a aquellos que no pueden ser expresados como la suma de un número y la suma de sus cifras. En el contexto de esta serie de entradas, podemos considerar los de tipo cuadrático, que no pueden ser expresados como la suma de otro número más la suma de los cuadrados de sus cifras. Uno de ellos, por ejemplo, es el 21, porque desarrollando para números menores ninguno da un resultado de 21, como puedes ver en la tabla:



Como la distribución de cifras es algo imprevisible, nos vemos obligados a usar todos los casos entre 1 y N-1 para saber si un número es colombiano de tipo cuadrático. Esto retrasa el proceso, pero podemos usar esta función:

Public Function escolombiano(n)
Dim m
Dim es As Boolean

m = 1
es = True
While m < n And es
If m + sumacifras(m, 2) = n Then es = False
m = m + 1
Wend
escolombiano = es
End Function

Así resultan los primeros:

1, 3, 4, 5, 7, 8, 9, 10, 14, 15, 16, 18, 19, 21, 22, 25, 27, 28, 29, 32, 33, 34, 35, 37, 38, 40, 43, 46, 47, 48, 49, 50, 52, 55, 57, 60, 61, 63, 64, 65, 70, 71, 73, 74, 78, 79, 82, 84, 85, 88, 89, 91, 92, 93, 94, 97, 99, 100, 104, 106, 109, 110, 115, 120, 122,…

Observamos que son muy abundantes, que la excepción es que la igualdad se cumpla, como en el 2, en el que 2=1+12, o el 12, que cumple 12=3+32. En los elementos de la lista esta equivalencia no es posible para ningún número menor que ellos.

Los tienes publicados en https://oeis.org/A225048


Números que son primos con la suma de los cuadrados de sus dígitos (en base 10)

Muchos números naturales son primos con la suma de los cuadrados de sus dígitos. Esto tiene su lógica, pues ambos números pertenecen a ámbitos distintos. La suma de cuadrados de cifras depende además de la base de numeración, en este caso 10.

Si usamos nuestra función sumacifras es fácil programar una búsqueda de los números que nos interesan. Resultan ser estos:



En formato de lista:

1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 23, 25, 27, 29, 31, 32, 34, 35, 37, 38, 41, 43, 45, 47, 49, 51, 52, 53, 54, 56, 57, 58, 59, 61, 65, 67, 71, 72, 73, 74, 75, 76, 78, 79, 81, 83, 85, 87, 89, 91, 92, 94, 95, 97, 98, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 113, 115, 119, 121, 122,…

Podemos generarla también con el lenguaje PARI:

for(p=1,300, a=norml2(digits(p)); if(gcd(p,a)==1, print1(p,", ")))

Son tantos los ejemplos, que merece la pena obtener sus complementarios, aquellos que no son coprimos con la suma de cuadrados de sus cifras. Los primeros son estos:

2, 3, 4, 5, 6, 7, 8, 9, 20, 22, 24, 26, 28, 30, 33, 36, 39, 40, 42, 44, 46, 48, 50, 55, 60, 62, 63, 64, 66, 68, 69, 70, 77, 80, 82, 84, 86, 88, 90, 93, 96, 99, 110, 111, 112, 114, 116, 117, 118, 120, 125, 129, 130, 132, 133, 134, 135, 136, 138, 141, 143, 144, 147, 150, 152, 154, 156, 158, 170, 171, …

Se obtienen como los anteriores, cambiando == por >> en PARI:

for(p=1,300, a=norml2(digits(p)); if(gcd(p,a)>>1, print1(p,", ")))

Con estos ejemplos finalizamos las curiosidades más destacables  de la suma de los cuadrados de las cifras de un número. En las siguientes entradas presentaremos algunas iteraciones interesantes.