viernes, 26 de febrero de 2021

Productos palindrómicos

En nuestras búsquedas de números y de desarrollos curiosos nos hemos encontrado a menudo con operaciones que dan lugar a números capicúas o palindrómicos (en esta entrada usaremos la palabra capicúa, que es más popular entre nosotros). Para abreviar, nos restringiremos a la operación producto con datos no necesariamente capicúas, pero cuyo resultado sí  lo es. Usaremos factores cercanos como objetivo de la búsqueda.

Siguiendo la costumbre general, consideramos capicúas a los de una cifra.

En este blog disponemos de la función ESCAPICUA, que puedes consultar en el Anexo de nuestra entrada https://hojaynumeros.blogspot.com/2020/02/suma-y-producto-de-cubo-y-otro-tipo-1.html El problema es que depende mucho de la estructura del lenguaje VBASIC DE Excel y Calc. Proponemos una nueva versión que se traslada mejor a otro lenguaje:

Function escapicua(n) As Boolean

Dim a, b, c, i, j, t

Dim es As Boolean

If n < 10 Then escapicua = True: Exit Function ‘Si es de una cifra, es capicúa

es = True ‘Suponemos que es capicúa

c = 1

While n >= 10 ^ c: c = c + 1: Wend ‘Calcula el número de cifras

t = Int((c + 1) / 2) ‘Punto medio de las cifras

i = 1

While i <= t And es

a = Int((n - Int(n / 10 ^ i) * 10 ^ i) / 10 ^ (i - 1)) ‘a y b son cifras simétricas

j = c - i + 1

b = Int((n - Int(n / 10 ^ j) * 10 ^ j) / 10 ^ (j - 1))

If a <> b Then es = False ‘Si las cifras simétricas son desiguales, no es capicúa

i = i + 1

Wend

escapicua = es

End Function

 

Con esta función es fácil analizar si un producto es capicúa o no. Podéis elegir la versión que más os guste.

En el lenguaje PARI, al poder usar listas y vectores, la función es muy simple. La que sigue se inspira en la propuesta por Michel Marcus:

ispalindromic(n) = my(d = digits(n)); Vecrev(d) == d

La función digits convierte el número en un vector de cifras y solo queda comprobar que es idéntico a su reverso.

 Productos entre números próximos

Caso N(N+1)

Un caso sencillo es el de multiplicar dos números consecutivos para dar como resultado un número oblongo (ver http://oeis.org/wiki/Oblong_numbers)

En hoja de cálculo basta construir una columna con productos N(N+1) y después aplicarle la función ESCAPICUA. Nosotros hemos usado un sencillo buscador que realiza la misma función, con este resultado:

Estos primeros casos están publicados en http://oeis.org/A028336

Con nuestra función en PARI podemos llegar más lejos sin esfuerzo:

Código:

ispalindromic(n) = my(d = digits(n)); Vecrev(d) == d

for(i=1,10^6,if(ispalindromic(i*(i+1)),print(i,"  ",i*(i+1))))

Es curioso el caso del 77, que siendo capicúa, produce un oblongo también capicúa: 6006=77*78

Una simpática referencia a estas búsquedas la tienes en  http://www.worldofnumbers.com/consec.htm

 

CASO N(N+2)

Este caso lo podemos tratar de la misma forma que el anterior. Esta es la tabla que se puede construir con hoja de cálculo:

Es curioso el caso de los números formados por nueves. Estas igualdades son muy simples, pero ilustrativas:

9×(9+2)=99

99×(99+2)=9999

999×(999+2)=999999

9999×(9999+2)=99999999

También destaca el capicúa 191, que se convierte en otro capicúa: 191*(191+2)=36863

Están publicados los primeros valores de N en http://oeis.org/A028503 y algunas curiosidades en http://www.worldofnumbers.com/quapron.htm. En ellas se comprueba la pertenencia de 9, 99, 999, 9999,…

Una consecuencia inmediata de la forma de estos productos es que equivalen a un número cuadrado menos la unidad. Es fácil verlo: a(a+2)=a2+2a=(a+1)2-1. Se puede comprobar mentalmente con los primeros, o creando una columna nueva en la hoja de cálculo.

 

Caso N(N+3)

Finalizamos este tipo de producto con el caso de dos factores que se diferencian en tres unidades, es decir, N(N+3)

Aplicando los mismos criterios de búsqueda llegamos a la sucesión de palíndromos. Esta vez usaremos el siguiente código PARI:

ispalindromic(n) = my(d = digits(n)); Vecrev(d) == d

for(i=1,10^6,if(ispalindromic(i*(i+3)),print(i,"  ",i*(i+3))))

Los primeros valores de N y del palindrómico N(N+3) son

 


Si en el anterior caso destacábamos el caso de 9, 99, 999, aquí llama la atención el de 28, 298, 2998,…en los que se forman:

28*(28+3)=868

298*(298+3)=89698

2998*(2998+3)=8996998

Estos casos están publicados en http://oeis.org/A028553. En esa página se enlazan otras de         

Patrick De Geest que analizan estos casos y los siguientes, N(N+4), N(N+5), que no estudiaremos aquí.

Caso K(2K+1)

Con las mismas técnicas que los anteriores podemos investigar aquellos números de los que uno es el doble del otro más la unidad. Resultan estos casos:



Elegimos esta relación para ver si la cumplía algún número primo de Sophie Germain (https://es.wikipedia.org/wiki/N%C3%BAmero_primo_de_Sophie_Germain), pero solo hemos encontrado el par (5, 11) con producto capicúa 55.

Caso K*K

Es el caso de los cuadrados que son capicúas.



Son bastantes, y están publicados en http://oeis.org/A002778

 

Caso K*2K

Es como buscar los productos que son doble de un cuadrado. No aparecen tantos como era de esperar, ya que la siguiente tabla presenta los menores de 10^5:



Están publicados los resultados, pero no los valores de N, en http://oeis.org/A028985

En esa página se destaca que el número de divisores de estos resultados es impar

En efecto, la suma de divisores de un número tiene como fórmula

Si el resultado es el doble de un cuadrado, su descomposición factorial tendrá la forma

Todos los factores con exponente par producirán en la fórmula de arriba factores impares. Por ejemplo, 74 produciría 1+7+72+73+74, que es impar. Igual ocurre con el 2, que, por ejemplo, 22=1+2+22, impar. Por último, el 2 que encabeza la expresión produciría el factor 1+2=3, luego todos los paréntesis de la fórmula serán impares, y con ellos el producto.

 

 

No hay comentarios: