martes, 13 de febrero de 2024

Divisores y sumas palindrómicas

El día 4/03/2023 publiqué en Twitter (@connumeros) que los divisores propios del número 4323 son todos palindrómicos (consideramos de este tipo también los de una cifra):

1441 393 131 33 11 3 1

Estudiando este hecho llegué a una sucesión de mi amigo Claudio Meller en la que figuran aquellos números cuya suma de divisores propios coincide con la de sus simétricos o reversos  https://oeis.org/A163122).

A primera vista parecía que coincidirían los términos, pero mi sentido matemático lo negaba, y, en efecto, la sucesión de Claudio contiene términos, como el 840, cuyos divisores no son todos capicúas (o palindrómicos).

En ambos casos es evidente que solo tratamos con números compuestos. La búsqueda de estos números no es difícil. Basta recorrer sus divisores propios y abandonar el proceso si aparece un divisor no capicúa. Puede ser así:

 Function esdivcapi(n) As Boolean

Dim i
Dim es As Boolean
If esprimo(n) Then esdivcapi = False: Exit Function ‘No puede ser primo
es = True ‘Suponemos que es cierta la hipótesis
i = 2 ‘Primer divisor
While i <= n / 2 And es
If n / i = n \ i And Not escapicua(i) Then es = False ‘Si un divisor no es capicúa, cortamos el proceso
i = i + 1 ‘Siguiente posible divisor
Wend
esdivcapi = es
End Function

Resultado:

4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 21, 22, 25, 27, 33, 35, 44, 49, 55, 66, 77, 88, 99, 121, 202, 242, 262, 302, 303, 362, 363, 382, 393, 404, 453, 484, 505, 524, 543, 573, 605, 606, 626, 655, 706, 707, 726, 746, 755, 766, 786, 808, 847, 905, 909, 917, 939, 955, 968,…

 

Por ejemplo, los divisores propios de 524 son 262 131 4 2 1, todos palindrómicos.

 

Es fácil, pero algo oscura, la traducción de esta función a PARI. Hemos usado esta, que da los mismos resultados de forma casi instantánea:

 

is(n)=my(i=1,v=divisors(n),a=#v);if(a>2,for(i=1,a-1,if(!(digits(v[i])==Vecrev(digits(v[i]))),return(0))),return(0));1

for(i=4,1000,if(is(i),print1(i,", ")))

 

Este es el resultado en la página oficial de PARI



Puedes comprobar este otro código por si te sirve de aprendizaje del lenguaje:

 

is(n)=my(s);if(!isprime(n)&&n>1,s=sumdiv(n,d,digits(d)==Vecrev(digits(d))&&d<n),return(0));s+1==#divisors(n)

for(i=1,1000,if(is(i),print1(i,", ")))

 

Soluciones palindrómicas

 

En la lista de resultados se observan capicúas, como 303 o 484. El proceso de encontrarlos se hace más sencillo. Bastará llegar en el primer código hasta a en lugar de a-1. Seguiremos tratando con compuestos, pues el caso de primos nos llevaría a los “palprimos”, que ya hemos estudiado en otra ocasión

(https://hojaynumeros.blogspot.com/2016/05/palprimos-primos-palindromicos.html)

 

La previsible nueva lista es

 

4, 6, 8, 9, 22, 33, 44, 55, 66, 77, 88, 99, 121, 202, 242, 262, 303, 363, 393, 404, 484, 505, 606, 626, 707, 808, 909, 939, 1111, 1331, 1441, 1661, 1991, 2222, 2662, 2882, 3333, 3443, 3883, 3993, 4444, 5555, 6666, 6886, 7777, 7997, 8888, 9999,…

 

La podemos crear con este código PARI:

is(n)=my(i,v=divisors(n),a=#v);if(a>2,for(i=1,a,if(!(digits(v[i])==Vecrev(digits(v[i]))),return(0))),return(0));1
for(i=4,10000,if(is(i),print1(i,", ")))

 


En nuestro caso, la hemos comprobado en hoja de cálculo añadiendo la condición de que N sea palindrómico.

 

Sucesión de Claudio Meller

 

Al haber acudido a esta sucesión, bueno será adjuntar el modo de construirla con nuestros métodos habituales.

 

Function igualsumconrever(n) As Boolean

Dim i, s1, s2

 

If esprimo(n) Or n = 1 Then igualsumconrever = False: Exit Function

s1 = 0: s2 = 0

For i = 2 To n / 2

If n / i = n \ i Then

s1 = s1 + i: s2 = s2 + cifrainver(i)

End If

Next i

If s1 = s2 Then igualsumconrever = True Else igualsumconrever = False

End Function

 

Resultado

 

4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 21, 22, 25, 27, 33, 35, 44, 49, 55, 66, 77, 88, 99, 121, 202, 242, 262, 302, 303, 362, 363, 382, 393, 403, 404, 453, 484, 505, 524, 543, 573, 605, 606, 626, 655, 689, 706, 707, 726, 746, 755, 766, 783, 786, 808, 840, 847, 905, 909, 917, 920, 939, 955, 968, 989,…( https://oeis.org/A163122)

         

 

Con PARI

 

is(n)=my(i=1,v=divisors(n),a=#v,s1=0,s2=0);if(!isprime(n),for(i=1,a-1,s1=s1+v[i];s2=s2+eval(concat(Vecrev(Str(v[i]))))));s1==s2&&s1>0

for(i=2,1000,if(is(i),print1(i,", ")))

 

 

Resultado

 



 Suma palindrómica

Por último, a la condición de que todos los divisores propios sean palindrómicos, podríamos añadir que su suma (las partes alícuotas) también lo sea. Hemos usado  en hoja de cálculo esdivcapi junto con escapicua(sigma(i)-i), con este resultado:


Llama la atención la ausencia de números de tres o cuatro cifras.


No hay comentarios: