miércoles, 4 de marzo de 2015

Números especiales que son un producto especial (3)


Con números cuadrados

Proseguimos el tema de buscar números especiales que son producto de dos factores también especiales. Hemos estudiado algunas variantes con triangulares, cuadrados, oblongos y primos. En esta entrada descompondremos cuadrados como producto de otros dos de algún tipo especial.

Un caso que no necesita estudio es el de cuadrados producto de cuadrados, pues esta condición la cumplen todos salvo los cuadrados de primos. Así que pasamos a otros productos. En todos ellos exigiremos que los factores del producto sean distintos, para evitar trivialidades, ya que si son iguales su producto sería cuadrado sin necesidad de buscar más.

Los algoritmos de esta entrada se basarán todos en la generación de cuadrados mayores que 1 que ya estudiamos, es decir, iniciar P=4 y K=5 y después, en cada pasada del bucle, hacer P=P+K y K=K+2, ya que sabemos que los incrementos de los cuadrados crecen de 2 en 2.

Producto de triangulares distintos

Hemos encontrado esta sucesión, que contiene muchos cuadrados de términos de https://oeis.org/A175497:

900, 7056, 32400, 44100, 88209, 108900, 298116, 705600, 1368900, 1498176, 2924100, 5336100, 8643600, 8820900, 9217296, 10432900, 15210000, 24147396, 37088100, 50893956, 50979600, 52490025, 55353600, 80568576, 114704100, 160123716, 200930625, 219632400, 265559616, 268304400, 296528400, 394657956,…

Pronto se llega a números grandes, por la fuerte condición que les exigimos. Por ejemplo, 88209 es el cuadrado de 297, y se puede descomponer en el producto de dos triangulares distintos: 88209=29403*3 y 29403 es el triangular número 242 (29403 =242*243/2) y 3 es el segundo (3=2*3/2).

Hemos comprobado los cálculos con dos métodos. Aquí tienes el de PARI

{i=4;j=5; ‘Inicia cuadrados
while(i<=5*10^8,k=3;p=3;c=0; ‘Inicia factores triangulares
while(k<sqrt(i)&&c==0,if(i/k==i\k&&ispolygonal(i/k,3)&&i/k>1,c=k);
‘Sólo llegamos en la búsqueda hasta la raíz cuadrada, para que ambos factores sean distintos
if(c>0,print(i);write1("final.txt",i,", ")); ‘Si c>0 se ha encontrado una solución
k+=p;p+=1);
i+=j;j+=2)
}

Ambos factores triangulares han de tener algún factor en común para que se forme un cuadrado.



Sus partes libres de cuadrados serán iguales, ya que es la única forma de que al final resulte un cuadrado. Lo puedes comprobar con algunos ejemplos de la tabla. Por ejemplo, 705600 es el triangular número 1187, y se descompone en el triangular 28, con parte libre 7, y el triangular 25200=60^2*7, que tiene también un 7 como parte libre.

Cuadrados producto de dos oblongos distintos

Este caso es equivalente al que exige que un cuadrado sea igual a cuatro veces el producto de dos triangulares distintos. Así, si el cuadrado 3600 es el producto de los dos oblongos 6=2*3 y 600=24*25, también cumple, como es evidente, que su cuarta parte es el producto de dos triangulares 3600/4=900=3*300.

Los primeros cuadrados que cumplen esto son:

144, 3600, 4900, 28224, 129600, 166464, 176400, 352836, 435600, 1192464, 2822400, 5475600, 5654884, 5992704, 11696400, 21344400, 34574400, 35283600, 36869184, 41731600, 60840000, 96589584, 148352400, 192099600, 203575824, 203918400, 209960100, 221414400, 322274304, 458816400,…

Aquí tienes la descomposición en producto de oblongos de los primeros:


Como todos son pares, ya tienen un factor común, y como en el caso anterior, sus partes libres de cuadrados han de ser iguales.

Los puedes conseguir en PARI con

{i=4;j=5;while(i<=5*10^8,k=2;p=4;c=0;while(k<sqrt(i)&&c==0,if(i/k==i\k&&issquare(4*i/k+1)&&i/k>1,c=k);if(c>0,print(i));k+=p;p+=2);i+=j;j+=2)}

Si usamos nuestra imaginación podemos recorrer muchas variantes, pero nos quedaremos con esta última:

Cuadrados producto de triangular y primo

9, 196, 225, 900, 2601, 3249, 4225, 15376, 53361, 88209, 136161, 176400, 181476, 191844, 324900, 450241, 461041, 1032256, 2152089, 2873025, 3960100, 7027801, 8643600, 11826721, 12744900, 17791524, 19193161, 28515600, 43956900, 45360225, 61230625, 63282025, 96216481, 108680625,…

Aquí es como si el número primo aportara el factor que se necesita para convertir un triangular en un cuadrado. Por tanto, el factor primo es igual a la parte libre de cuadrados del otro factor triangular.

Por tener esta propiedad disponemos de dos códigos distintos para encontrar esos números. Uno es el “largo”, que sigue lo explicado en estas entradas:

{i=4;j=5;
while(i<=5*10^8,k=3;p=3;c=0;
while(k<i&&c==0,if(i/k==i\k&&isprime(i/k)&&i/k>1,c=k);
if(c>0,print(i));
k+=p;p+=1);
i+=j;j+=2)
}

Podemos usar este otro, mucho más corto, pero que no nos ordena los números en orden creciente:

{i=1;j=2;while(i<=10^5,m=core(i);if(isprime(m),print1(i*m,", "));i+=j;j+=1)}

Como hemos indicado, se podría seguir con otros casos. Intenta reproducir este:

Cuadrados producto de un triangular y un oblongo
36, 900, 3600, 7056, 15876, 41616, 44100, 54756, 69696, 108900,…