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.

lunes, 13 de mayo de 2019

Números primos con la misma suma o diferencia de cuadrados (2)


En la anterior entrada se estudiaron aquellos números primos que dan lugar a sumas de cuadrados equivalentes. En la presente se verá la misma cuestión con diferencias.


Diferencias de cuadrados


En el caso de buscar números que sean equivalentes a dos diferencias de cuadrados de números primos es más sencillo usar la diferencia k entre dos de esos primos. Incluimos un desarrollo algebraico que le da ese protagonismo a esa diferencia k.

Partimos de una suma por diferencia como equivalente a la diferencia de cuadrados. Si m=(a+b)(a-b). sustituyendo a por x+k y b por x, llamando k a la diferencia a-b, queda:

m=(x+k+x)(x+k-x)=(2x+k)k.

El valor mínimo de k es 2, ya que sería el caso de primos gemelos, luego k>=2 siempre será par, puesto que hemos excluido el número primo 2.

Por otra parte, 2x+k es un divisor propio de m, y también par, luego será menor o igual que m/2, y, a su vez, m será múltiplo de 4. Sólo los múltiplos de 4 pueden presentar la propiedad requerida.

2x+k=m/k<=m/2, luego x ha de ser menor o igual que m/4 y x+k<=m/4+k

Así queda el valor de x en función de k: x=(m/k-k)/2

Luego podemos construir el bucle de búsqueda con k entre los divisores pares de m, a fin de que sea entero m/(2*k).

Para cada valor de k, par, vemos si es divisor de m y entonces buscamos entre los impares, de x=3 hasta x=m/4 los que sean primos y también lo sea x+k

Estas consideraciones nos llevan a la siguiente función, en la que dados un número natural n y un número k de diferencias de cuadrados de primos, nos indica si ese número equivale a esas diferencias o no:

public function difeprimcuad$(n,k)
dim b, c,i,m,d
dim ca$

if n/4<>n\4 then difeprimcuad="NO":Exit function ‘Ha de ser múltiplo de 4

ca="" ‘Recogerá las soluciones en modo texto
m=0 ‘Contador de soluciones
b=int(sqr(n))+1 ‘Valor mínimo para el primer primo
d=int(n/4+2) ‘Valor máximo según los párrafos anteriores
for i=b to d
if esprimo(i) then ‘El minuendo de la diferencia ha de ser primo
c=int(sqr(i^2-n+1e-5)) ‘Posible sustraendo
if esprimo(c) and i^2=n+c^2 then m=m+1: ca$=ca$+" "+ajusta(i)+" "+ajusta(c)+" & "
‘Hay una solución más. Se recoge en ca$ y se incrementa el contador m
end if
next i
if m=k then difeprimcuad=ca else difeprimcuad="NO" ‘Si hay k soluciones, se recogen.
end function

Con esta función y un bucle de búsqueda obtenemos las primeras soluciones, acompañadas de las diferencias de cuadrados de primos que admiten:

72          11 7 &  19 17 &
360        23 13 &  47 43 &
432        31 23 &  109 107 &
528        37 29 &  47 41 &
768        67 61 &  193 191 &
888        43 31 &  113 109 &
960        53 43 &  241 239 &
1032      89 83 &  131 127 &
1080      37 17 &  271 269 &
1128      53 41 &  283 281 &
1272      59 47 &  109 103 &
1392      41 17 &  349 347 &
1488      43 19 &  97 89 &
1512      41 13 &  61 47 &
1608      73 61 &  137 131 &
1632      41 7 &  59 43 &
1728      43 11 &  433 431 &
1920      47 17 &  163 157 &

Están publicadas en http://oeis.org/A090788

72, 360, 432, 528, 768, 888, 960, 1032, 1080, 1128, 1272, 1392, 1488, 1512, 1608, 1632, 1728, 1920, 2088, 2112, 2232, 2352, 2400, 2448, 2568, 2688, 2808, 3048, 3168, 3240, 3288, 3480, 3648, 3768, 4008, 4032, 4128, 4248, 4272, 4392, 4488, 4512, 4992.

Con este código PARI, inspirado en la función anterior, se reproduce el resultado.

i=4; while(i<=5000, k=0; m=2; while(m*m<=i, if(i%(2*m)==0, a=(i/m-m)/2; b=a+m; if(isprime(a)&&isprime(b), k+=1)); m+=2); if(k==2, print1(i, ", ")); i+=4)



Por mera curiosidad, se incluyen a continuación los números que cumplen ser diferencia de cuadrados de primos de tres formas distintas. Basta sustituir k=2 en la función por k=3:

120        13 7 &  17 13 &  31 29 &
168        17 11 &  23 19 &  43 41 &
312        19 7 &  29 23 &  41 37 &
408        23 11 &  37 31 &  103 101 &
480        23 7 &  29 19 &  43 37 &
552        29 17 &  71 67 &  139 137 &
600        31 19 &  53 47 &  151 149 &
672        29 13 &  31 17 &  59 53 &
720        29 11 &  41 31 &  181 179 &
1008      37 19 &  43 29 &  67 59 &
1200      37 13 &  79 71 &  103 97 &
1800      43 7 &  59 41 &  227 223 &
2160      47 7 &  113 103 &  139 131 &
2472      109 97 &  311 307 &  619 617 &
2832      71 47 &  181 173 &  239 233 &
2880      61 29 &  89 71 &  149 139 &
3312      59 13 &  101 83 &  829 827 &
3672      61 7 &  71 37 &  461 457 &
4560      79 41 &  107 83 &  233 223 &
5040      73 17 &  83 43 &  149 131 &
5640      109 79 &  151 131 &  241 229 &
6120      79 11 &  103 67 &  107 73 &
6480      101 61 &  409 401 &  1621 1619 &
6528      83 19 &  113 79 &  547 541 &
7248      163 139 &  457 449 &  607 601 &
7320      137 107 &  193 173 &  613 607 &
7752      89 13 &  131 97 &  971 967 &
7872      89 7 &  139 107 &  659 653 &
8160      109 61 &  137 103 &  683 677 &
8352      101 43 &  241 223 &  2089 2087 &
8400      103 47 &  109 59 &  307 293 &

Puedes seguir con la cuestión para cuatro, cinco o seis diferencias. Basta cambiar la última condición k=2 en Basic o k==2 en PARI. En las siguientes sucesiones de OEIS tienes los listados:


Hay más, pero con estos ejemplos basta. Puedes indagar los casos de siete, ocho o más.

Correspondencias entre los que son suma y sus correspondientes diferencias:


Una cuestión curiosa es la extraer casos de la primera parte de esta entrada, sumas de cuadrados de primos, con los de la segunda, de diferencias de primos. Lo vemos con un ejemplo concreto:

410=19²+7²=17²+11²

Al ser distintos los sumandos, transponiendo términos, surgen dos grupos de diferencias iguales: 19²-17²=11²-7²=72

19²-11²=17²-7²=240

Así que del número 410, equivalente a dos sumas de primos distintos, obtenemos otros dos números, 72 y 240, que pertenecen a los casos de diferencias de cuadrados de primos. Ocurre también el hecho contrario, que de 72 o 240, transponiendo términos, podemos obtener un caso de suma de cuadrados de primos. La correspondencia es múltiple y no siempre recíproca, por lo que sólo podemos constatar qué números de un grupo se relacionan con el otro.

No se incluyen los listados que se han usado para establecer correspondencias entre un conjunto y otro. En este listado se pueden apreciar los casos de diferencias de cuadrados de primos que se extraen de los de sumas múltiples de cuadrados

Correspondencias entre los que son suma y sus correspondientes diferencias:

338        120  120
410        240  72
578        240  240
650        240  168
890        480  312
1010      792  120
1130      672  120
1490      840  408
1730      1320  312
1802      840  720
1898      1320  480

Por ejemplo, 1730=41²+7²=37²+19², y transponiendo términos:

41²-19²=37²-7²=1320

Y también

41²-37²=19²-7²=312

Podemos seguir las rutas opuestas, desde los que son diferencia de cuadrados a las correspondientes sumas.

Por ejemplo, 72=11²-7²=19²-17² y transponiendo:

11²+17²=7²+19²=410, que pertenece a nuestro primer listado.

Aunque las correspondencias no son biunívocas, con paciencia se pueden construir cadenas. Lo dejamos ahí.


lunes, 6 de mayo de 2019

Números primos con la misma suma o diferencia de cuadrados (1)


Muchas entradas de este blog se inician en los cálculos sobre fechas que publico en Twitter. El día 28/4/18 presentaba la propiedad de que 

28418=23²+167²=43²+163²

es decir, que 28418 equivale a una suma de cuadrados de números primos de dos formas distintas. Si en esta igualdad de sumas transponemos cuadrados, se convierte en la igualdad de diferencias. 

Así, 167²-163²=43²-23², y 167²-43²=163²-23².

Estudiaremos en esta entrada qué números equivalen a la suma de cuadrados de números primos y separadamente, los que equivalen a diferencias, en ambos casos de dos o más formas distintas. Terminaremos el estudio con algunas relaciones entre ambos.

Así que las equivalencias entre sumas y las diferencias, como es evidente, están relacionadas. Esto excluye al número primo 2, por lo que en lo que sigue sólo intervendrán primos impares. Comenzamos con la suma de cuadrados.

Números equivalentes a dos sumas de cuadrados de primos


 Estos números están publicados en http://oeis.org/A226539

338, 410, 578, 650, 890, 1010, 1130, 1490, 1730, 1802, 1898, 1970, 2330, 2378, 2738, 3050, 3170, 3530, 3650, 3842, 3890, 4010, 4658, 4850, 5018, 5090, 5162, 5402, 5450, 5570, 5618, 5690, 5858, 6170, 6410, 6530, 6698, 7010, 7178, 7202, 7250, 7850, 7970, …

Como en este blog se usa la hoja de cálculo, se puede intentar reproducirlos con una función apropiada en el Basic de Excel o LibreOffice Calc. Puede ser la siguiente, en la que n es el número a analizar y k el número de sumas de cuadrados de primos que sean equivalentes. El resultado es el listado, en forma de cadena de texto, de los primos de cada par o la palabra “NO” si no existen soluciones.

public function sumaprimcuad$(n,k)
dim  b, c,i,m
dim ca$

ca="" ‘Cadena vacía que recibirá las soluciones
m=0 ‘Contador de soluciones
b=sqr(n/2) ‘Tope para ensayar primos
for i=1 to b ‘La variable i recorre los valores de los primos
if esprimo(i) then
c=int(sqr(n-i^2+1e-5)) ‘Se investigará si el segundo sumando es primo
if esprimo(c) and i^2+c^2=n then m=m+1: ca$=ca$+" "+ajusta(i)+" "+ajusta(c)+" & "
end if ‘Si hay solución se incrementa m y se copia en ca$
next i
if m=k then sumaprimcuad=ca else sumaprimcuad="NO"
end function

Aplicando esta función a un bucle de búsqueda se obtienen las primeras soluciones para el caso k=2, que es el que nos interesa en este estudio. Cada solución viene acompañada de sus dos pares de primos:

338        7 17 &  13 13 &
410        7 19 &  11 17 &
578        7 23 &  17 17 &
650        11 23 &  17 19 &
890        7 29 &  19 23 &
1010      7 31 &  13 29 &
1130      13 31 &  17 29 &
1490      11 37 &  23 31 &
1730      7 41 &  19 37 &
1802      11 41 &  29 31 &
1898      7 43 &  23 37 &
1970      11 43 &  17 41 &
2330      11 47 &  31 37 &
2378      13 47 &  23 43 &
2738      23 47 &  37 37 &

Coinciden con los primeros publicados en OEIS. Llama la atención ver que alguna de las soluciones contiene primos repetidos, como la última, en la que se repite el 37.

La ventaja de disponer de una función es que la podemos aplicar a números grandes sin tener que recorrer los previos.

Factores primos de las soluciones


 A la lista de los primeros números encontrados hemos añadido más abajo las dos sumas de cuadrados de primos y la descomposición factorial. Esta última es interesante porque de ella depende que existan dos o más descomposiciones en  suma de cuadrados (sean o no de primos). En una entrada antigua de este blog reproducíamos la fórmula de Gauss para contar esas sumas.

En ella se exigía que si figuran primos del tipo 4k+3, estos estuvieran elevados al cuadrado. En el listado de más abajo observamos que esto ocurre en 338, que contiene 13 al cuadrado, y en 578, con el cuadrado de 17:

338        7 17 &  13 13 &                [2,1][13,2]
410        7 19 &  11 17 &                [2,1][5,1][41,1]
578        7 23 &  17 17 &                [2,1][17,2]
650        11 23 &  17 19 & [2,1][5,2][13,1]
890        7 29 &  19 23 &                [2,1][5,1][89,1]
1010      7 31 &  13 29 &                [2,1][5,1][101,1]
1130      13 31 &  17 29 & [2,1][5,1][113,1]
1490      11 37 &  23 31 & [2,1][5,1][149,1]
1730      7 41 &  19 37 &                [2,1][5,1][173,1]
1802      11 41 &  29 31 & [2,1][17,1][53,1]
1898      7 43 &  23 37 &                [2,1][13,1][73,1]
1970      11 43 &  17 41 & [2,1][5,1][197,1]
2330      11 47 &  31 37 & [2,1][5,1][233,1]
2378      13 47 &  23 43 & [2,1][29,1][41,1]
2738      23 47 &  37 37 & [2,1][37,2]
3050      29 47 &  37 41 & [2,1][5,2][61,1]
3170      19 53 &  31 47 & [2,1][5,1][317,1]
3530      7 59 &  41 43 &                [2,1][5,1][353,1]
3650      13 59 &  29 53 & [2,1][5,2][73,1]
3842      11 61 &  19 59 & [2,1][17,1][113,1]
3890      13 61 &  41 47 & [2,1][5,1][389,1]
4010      17 61 &  23 59 & [2,1][5,1][401,1]
4658      13 67 &  43 53 & [2,1][17,1][137,1]

Se observa que aparte del factor 2, presente por ser números pares, el resto, suele tener otros dos factores, ya sean repetidos, como en 2738=2*37², o bien distintos, como en el caso de 2378=2*29*41. Hay otros, y eso los hace interesantes, que poseen tres factores más, como 3050=2*5²*61. En estos casos aparecerán nuevas sumas de cuadrados, pero ya no tienen que tener base prima.

En efecto, 3050=29²+47²=37²+41²=5²+55²

La última suma es claramente de bases no primas, que no intervienen en la cuestión que estamos estudiando.

Podemos pasar esta función a PARI, y obtener así un listado más compacto de las soluciones:

for(n=2,10000,m=0;b=sqrt(n/2);for(i=2,b,if(isprime(i),c=truncate(sqrt(n-i^2+1e-5));if(isprime(c)&&(i^2+c^2==n),m+=1)));if(m==2,print1(n,", ")))

Con este código se pueden obtener los números desde el 2 hasta el 10000 contenidos en http://oeis.org/A226539



Números con tres descomposiciones


Si en la función dada hacemos k=3 obtendremos los números que admiten su descomposición en tres sumas de cuadrados de números primos. Puedes intentarlo con la herramienta referida. Los primeros casos son:

2210     19 43 &  23 41 &  29 37 &
3770      7 61 &  17 59 &  31 53 &
5330     17 71 &  29 67 &  43 59 &
6290      7 79 &  31 73 &  53 59 &

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

2210, 3770, 5330, 6290, 12818, 16490, 18122, 19370, 24050, 24650, 26690, 32810, 33410, 34970, 36530, 39650, 39770, 44642, 45050, 45890, 49010, 50690, 51578, 57770, 59450, 61610, 63050, 66170, 67490, 72410, 73610, 74210, 80330, 85202, 86210, 86330, 88010,...

Podríamos seguir con los que admiten cuatro descomposiciones o más, pero lo dejamos como ejercicio, que no es difícil disponiendo de la función que hemos presentado.

En la siguiente entrada estudiaremos la misma cuestión, pero con diferencias.