Muchas de las entradas de este blog surgen de los cálculos
diarios que publico en Twitter (@Connumeros). El que sigue nos va a dar materia
para más de una entrada.
El día 21/5/19 obtuve esta propiedad:
El número de fecha de
hoy, 21519 se descompone en un producto de un cubo por un capicúa y también en
una suma del mismo tipo:
21519=3^3×797
21519=12^3+19791
No sabía en ese momento si existirían muchos números que
compartieran las dos expresiones N=p^3*q y N=r^3+s, y parece que sí, que son
abundantes.
Para acotar la búsqueda, exigiremos que los cuatro números
p, q, r y s sean enteros positivos. La exclusión del 0 evita casos triviales.
Al iniciar el estudio he pensado que el número que acompaña
al cubo puede ser cuadrado o triangular, por ejemplo, en lugar de capicúa. Esto
amplía el estudio y por eso es posible que se necesiten varias entradas.
Suma y producto de
cubo y capicúa
La primera condición, N=p^3*q, permite desechar aquellos
números N que no sean múltiplos de un cubo. Esto se logra fácilmente con la
descomposición factorial y el estudio de los exponentes de los factores primos.
El inconveniente es que en un blog como este se alargaría mucho la explicación
del procedimiento para crear nuestra función FACTORES y la rutina SACAPRIMOS.
Por eso, y no es nuevo en estas entradas, emprenderemos la búsqueda con medios
más sencillos. El peligro estribaría en la lentitud, pero no es inconveniente
en este caso. Con Excel se consiguen listas con una rapidez aceptable.
Comenzamos, como es usual en estas búsquedas, con la
creación de una función, a la que llamaré CUBOYOTRO, que nos indique si un
número N cumple los dos requisitos N=p^3*q y N=r^3+s. Su estructura nos va a
permitir adaptarla a todos los casos que estudiemos, pues bastará sustituir la
función ESCAPICUA (para el caso inicial) por ESCUAD, ESTRIANGULAR u otra. En
cada tipo explicaremos estas funciones auxiliares. Comenzamos con los capicúas.
La función recomendada es la siguiente:
Public Function cuboyotro$(n, k) ‘Añadimos
un parámetro k por si deseamos cambiar cubo por otra potencia
Dim x, a, y, b, c
Dim s$
s$ = "" ‘Usamos un string
para presentar bien los cuatro números p, q, r y s
a = n ^ (1 / k) ‘En este primer caso
k valdrá 3. La variable a es el tope de búsqueda
For x = 1 To a
c = n - x ^ k ‘Se resta del número
la potencia (en el primer ejemplo, un cubo)
If escapicua(c) And c > 10 Then ‘Más
adelante se cambiará ESCAPICUA
For y = 2 To a ‘En esta parte ya se
ha cumplido la segunda condición N=r^3+s
If n Mod y ^ k = 0 Then ‘Para la
primera condición p^3 ha de ser un divisor de n
b = n / y ^ k
If escapicua(b) and b>10 Then ‘Si
el cociente es capicúa, se publica la solución
s$ = " C1 " + Str$(x) + " O1
" + Str$(c) + " C2 " + Str$(y) + " O2 " + Str$(b)
‘El string nos presenta los cubos C1 y C2 y sus
compañeros O1 y O2.Puede haber más soluciones.
End If
End If
Next y
End If
Next x
If s$ = "" Then s$ =
"NO" ‘Asignamos un “NO” al caso sin solución
cuboyotro = s$
End Function
Hay que advertir algún detalle sobre esta función.
La decisión de evaluar en primer lugar la segunda condición
y después la primera no ha sido deliberada, y de hecho, poco eficiente, pues si
se cambia el orden se incrementa la
velocidad de respuesta de la función. Como resulta rápida así, no se ha
corregido y lo dejamos como ejercicio.
Este esquema es la base para otras búsquedas. Ya se ha
destacado que con un cambio de ESCAPICUA por otra función se podrían abordar
otros casos. Igualmente, aunque en lo que sigue haremos k=3 para buscar cubos,
se deja abierta la posibilidad de aumentar el exponente.
La función ESCAPICUA se inserta en el Anexo del final de
esta entrada. La costumbre es considerar capicúas los números de una cifra, pero
aquí no nos interesa esta posibilidad, pues aparecen casos sin interés. Exigiremos
que sean mayores que 10, como puedes comprobar en el listado de la función.
Los primeros números con esta propiedad son
Junto a cada uno se presentan los cubos C1 y C2 y el otro
componente, en este caso capicúa, en O1 y O2.
Por ejemplo, 2176=4^3+2112=2^3*272, dos cubos y dos
capicúas.
En PARI
Al tener que cumplir varias condiciones, el listado para
PARI resulta algo extenso, pero es bastante rápido en su ejecución.
maxexpo(n) = s=1; f=factor(n); for(i=1,
matsize(f)[1], t=f[i,2]; if(t>>s, s=t)); s
palind(n)=n==eval(concat(Vecrev(Str(n))))
condi1(n)= c=0; if(maxexpo(n)>=3, a=n^(1/3); for(x=2, a,
if(n%x^3==0,b=n/x^3;if(palind(b)&&b>=10,c=x))));c
condi2(n)= c=0; a=n^(1/3); for(x=2, a,
b=n-x^3;if(palind(b)&&b>=10,c=x));c
for(y=2,20000,
if(condi1(y)&&condi2(y),print1(y,", ")))
Con él podemos reproducir y ampliar la lista de arriba:
528, 704, 888, 1128, 1208, 1375, 1408, 1616, 1696, 1856,
2176, 2424, 2727, 2904, 2984, 3064, 3552, 3632, 3773, 3952, 4280, 4347, 4440,
4520, 4752, 5488, 5568, 5736, 5994, 6296, 6336, 6464, 6784, 7352, 7752, 8181,
8384, 8888, 10071, 10944, 11000, 11264, 11319, 12224, 12798, 13635, 13875,
14168, 14641, 15928, 16128, 16362, 16375, 17172, 18048, 18656, 19008, 19536,
19629, 19899,…
Hay que recordar que todos ellos son múltiplos de un cubo
con base no trivial y, por tanto, todos
son compuestos. Entre ellos aparecen casos particulares interesantes. Por
ejemplo:
Números del tipo p^3*11 o p^3*101. En estos dos casos y
otros similares, el capicúa correspondiente al producto es un número primo,
como ocurre en 704=4^3*11=2^3+696.
Caso del 14641: Como equivale a 11^4, su desarrollo sería
11^3*11. Hay que esperar que pertenezcan a este listado potencias de primos,
aunque sin buscarlos no se puede asegurar. Por ejemplo, 101^4 cumple la primera
condición (producto), pero no es suma de cubo y capicúa. El siguiente es 40353607,
que es potencia de primo (40353607=7^9) y se descompone en producto de cubo y
capicúa (40353607=49^3*343) y en suma de cubo y capicúa (40353607=334^3+3093903).
Hasta una cota de 8*10^7 ya no hay más casos.
El número 14641 es capicúa. Podríamos preguntarnos si
existen más capicúas en la sucesión. En la primera tabla hemos visto algún
capicúa. Los primeros son: 888, 3773, 6336, 8888, 14641, 80008, 88088,…
Por ejemplo, 3773 es capicúa, y equivale a 11^3+2442 y a 7^3*11.
Igualmente, el capicúa 6336 es igual a 11^3+5005 y a 4^3*99.
Finalmente, destacamos el número 74088, que es el cubo de
42, y también coincide con la suma de otro cubo y un capicúa, 35^3+31213, y
también con un producto similar, 6^3*343. Esto es posible por ser 343 capicúa y
cubo de 7.
Se podría buscar más casos particulares, pero es preferible
pasar a otras estructuras, que dejaremos para la siguiente entrada.
ANEXO
Código de la función ESCAPICUA
Public Function escapicua(n) As Boolean
Dim l, i, k
Dim c As Boolean
Dim auxi$,nn$
nn$ =Str$(n)
auxi= Right(nn$, Len(nn$) - 1)
l = Len(auxi)
Código de la función ESCAPICUA
Public Function escapicua(n) As Boolean
Dim l, i, k
Dim c As Boolean
Dim auxi$,nn$
nn$ =Str$(n)
auxi= Right(nn$, Len(nn$) - 1)
l = Len(auxi)
c=True
If l >1 Then
c = True
i = 1
k = Int(l / 2)
While i <= k And c
If Mid(auxi, i, 1) <> Mid(auxi, l - i + 1, 1) Then c = False
i = i + 1
Wend
End If
escapicua = c
End Function
If l >1 Then
c = True
i = 1
k = Int(l / 2)
While i <= k And c
If Mid(auxi, i, 1) <> Mid(auxi, l - i + 1, 1) Then c = False
i = i + 1
Wend
End If
escapicua = c
End Function