Unas
curiosidades no muy estudiadas se producen en números cuando la mitad derecha
de sus cifras se permuta con el bloque de la izquierda sin alterar el orden
interno de cada bloque. Por ejemplo, 24133 es primo, pero si rotamos sus cifras
por bloques, es decir, que el 33 se permuta con el 24, se convierte en 33124,
que es un cuadrado. Igual le ocurre a 24547, primo, que al rotar bloques
también se convierte en cuadrado: 47524.
Otros
números son primos y al rotar siguen siendo primos, como 1123 y 2311. Otros
permanecen cuadrados, o triangulares, y así podemos seguir recorriendo casos.
Se comprende que si el número de cifras es par, la rotación es completa, y, si
es impar, se deja invariante la cifra del centro. Esta operación la rotularemos
como función “rotar”. Así:
ROTAR(27365)=65327
ROTAR(7654)=5476
Con
la experiencia acumulada en el uso de la hoja de cálculo, no es complicado
diseñar esta función “rotar”. Para ello necesitamos dos funciones que hemos
usado varias veces en este blog, como son NUMCIFRAS y TROZOCIFRAS.
Sus listados
los puedes consultar en nuestra entrada
La
primera cuenta las cifras de un número, y TROZOCIFRAS devuelve las cifras del
número entre dos extremos prefijados.
El
listado de la función ROTAR puede ser:
function
rotar(n)
dim
nc,nc1,r
'rota
las cifras alrededor del centro si su número es impar
nc=numcifras(n)
if nc=1
then rotar=n:exit function ‘Es de una sola cifra
if nc
mod 2 = 1 then ‘Número
impar de cifras
nc1=(nc+1)/2
r=trozocifras(n,1,nc1-1)*10^nc1+trozocifras(n,nc1,nc1)*10^(nc1-1)+trozocifras(n,nc1+1,nc)
else
nc1=nc/2
‘Número
par de cifras
r=trozocifras(n,1,nc1)*10^nc1+trozocifras(n,nc1+1,nc)
end if
rotar=r
end
function
Así,
por ejemplo:
ROTAR(198262)=262198
Lo
puedes comprobar si implementas la función en tu equipo.
Búsquedas
Sobre
esta operación realizaremos algunas búsquedas de curiosidades. Eliminaremos los
números terminados en 0, porque llevan a resultados con números diferentes de
cifras, que no resultan atractivos, y tampoco usaremos números invariantes a la
operación de rotar, como puede ser 2347234. Los primeros eliminados se
caracterizarán por N MOD 10 = 0, y los segundos porque ROTAR(N)=N. Los ceros
interiores también pueden alterar el número de cifras, pero omitiremos esta
dificultad.
Veremos
a continuación algunos casos concretos:
Cuadrado que se
convierte en cuadrado
Dado
que en nuestras búsquedas podemos alcanzar números grandes, es útil disponer de
la función ROTAR en una versión para PARI, que es el instrumento que usamos
cuando la hoja de cálculo no satisface las exigencias que le imponemos. El
listado que sigue se limita a traducir paso por paso el algoritmo usado para
hoja de cálculo:
numcif(n)=1+logint(n,10)
cutdigit(a,
p, q)=(a%10^q)\10^(p-1)
rotar(n)={my(nc=numcif(n),r=0,nc1=0);if(nc==1,r=n);
if(nc%2==1&&nc<>1,nc1=(nc+1)/2;r=cutdigit(n,1,nc1-1)*10^nc1+cutdigit(n,nc1,nc1)*10^(nc1-1)+cutdigit(n,nc1+1,nc));
if(nc%2==0,nc1=nc/2;r=cutdigit(n,1,nc1)*10^nc1+cutdigit(n,nc1+1,nc));return(r)}
for(i=10,10^8,if(issquare(i),j=rotar(i);if(i%10<>0&&j<>i&&issquare(j),print1(i,",
"))))
Obtendremos:
144,
169, 441, 961, 16641, 25281, 41616, 81225, 1002001, 1004004, 1006009, 1008016,
1214404, 2253001, 2256004, 2259009, 3297856, 4004001, 4008004, 4044121,
6255001, 8567329, 9006001, 14010049, 20412324, 23242041, 32410249, 56040196,
81649296, 82410084, 92968164,…
Hemos
indicado que algunos ejemplos con ceros
interiores pueden alterar el número de cifras con la función ROTAR.
Primo que se
convierte en primo
En
el anterior código en PARI podemos sustituir las llamadas a la función issquare por la de isprime, con lo que obtendremos resultados similares, de números
primos que siguen siendo primos con una rotación de bloques. Los primeros
resultados son:
13,
17, 31, 37, 71, 73, 79, 97, 107, 113, 149, 157, 167, 179, 199, 311, 337, 347,
359, 389, 701, 709, 733, 739, 743, 751, 761, 769, 907, 937, 941, 953, 967, 971,
983, 991, 1103, 1109, 1123, 1163, 1181, 1193, 1301, 1303, 1319, 1321, 1327,
1361, 1777, 1783, 1907, 1913, 1931, 1933, 1949, 1951, 1979,…
Entre
ellos figura el 73, el número de Sheldon, presentado en la serie de televisión
“Big Bang”. No solo se convierte en el primo 37, sino que también se
intercambian sus números de orden como primos:
73=Primo(21)
y 37=Primo(12).
Entre
ellos también figuran años primos del siglo XX y de los siglos con número de
orden par.
Caso primo-cuadrado
Volvemos
al caso que presentamos en los primeros párrafos, el de los primos que se
convierten en cuadrados al rotar. Al igual que en el caso anterior, bastará
usar las funciones isprime y issquare en el lugar adecuado. Resultará
este listado:
61,
163, 487, 691, 1621, 2137, 2179, 2467, 2953, 3631, 9601, 21157, 21319, 24001,
24133, 24547, 25087, 36559, 36637, 36901, 49411, 49801, 56101, 56527, 64303,
69997, 84631, 121579, 124669, 129769, 136309, 156217, …
Entre
ellos aparecen los que solo sufren un intercambio de una cifra, como 69997.
Si
seguimos jugando con las dos funciones issquare
y isprime comprobaremos que la
situación es reversible, como era de esperar, pero con el orden cambiado.
Triangular - triangular
153,
351, 5565, 6105, 6555, 53956, 56953, 81003, 128778, 490545, 778128, 1252153,
1532125, 1613706, 7063161, 7401628, 7966036, 11061456, 14561106, 16287778,
22301181, 23787753, 32534211, 42113253, 44006271, 49109005, 50717556, 55466778,
67785546, 75565071, 77532378, 77781628,…
En
ellos se advierte el efecto de los ceros interiores, como en 81003, que alteran
el efecto de la rotación.
Oblongo – Oblongo
20306,
162006, 2504306, 22122912, 29122212, 44602362, 65068422, 84226506,…
Resultan
muy pocos, pero esto es frecuente en este tipo de números.
No hay comentarios:
Publicar un comentario