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.