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.

No hay comentarios: