miércoles, 18 de febrero de 2009

Dándole vueltas (3)

En el blog Números de Claudio Meller se publicó recientemente este problema:

El siguiente problema consiste en encontrar los dos únicos números de seis cifras que son iguales a un cuadrado menos uno, y en los la última mitad (los tres últimos dígitos tomados como un número de tres cifras) es el doble que la primera.

Es decir que se cumple:
abcdef = n2-1 
y abc = 2 x def 
Los dígitos abcdef no necesariamente deben ser todos diferentes.


Si las tres primeras son el doble de las tres segundas las soluciones son: 190095, 446223 y 806403 y si es al revés: 112224 y 444888

Lo bueno de este problema es que se puede abordar con distintas técnicas:

Algebraica

Es la que ofrece el autor del blog, que en esencia consiste en lo siguiente:

Podemos llamar x al número formado por las tres cifras inferiores, con lo que el resto del número sería 2000x (o bien al revés) y planteamos que 2001x = n(n+2), ya que todo cuadrado menos 1 equivale al producto de dos enteros cuya diferencia es 2 (en el caso simétrico sería 1002x=n(n+1) y deberemos intentar descomponer 2
001 en factores y ver cuáles de ellos se pueden completar a un producto de dos factores que se diferencien en dos unidades. Los factores de 2001 son: 2001*1; 667*3; 87*23 y 29*69 y se deberán completar hasta conseguir el producto del tipo n(n+2)

Hoja de cálculo sin macros

Se forma una columna con todos los múltiplos de 2001 (o de 1002) que tengan seis cifras (supongamos que es la D) y en la columna paralela siguiente (la E) se inserta una fórmula similar a la siguiente:

=SI(D6+1=ENTERO(RAIZ(D6+1))^2;"SI";"")

que viene a expresar que si D6+1 es cuadrado perfecto (igual al cuadrado de la parte entera de la raíz) se escribirá un SI, y en caso contrario se dejará en blanco. Al rellenar esa fórmula observaremos que aparece un SI en las soluciones 190095, 446223 y 806403. Cambia a 1002 y obtendrás las otras.


Hoja de cálculo con macros

Si se intenta mediante Basic, el código de macro adecuado sería:

Sub buscar
v=7
for i=1 to 999
a=1002*i (o bien 2001)
if a+1=int(sqr(a+1))^2 then
v=v+1
StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(4,v).value=a (En OpenOffice Calc)
ActiveWorkbook.Sheets(1).Cells(v,5).Value = " " (En Excel)
end if
next i
End Sub

Sería ésta una buena ocasión para iniciarte en la programación de macros. Puedes consultar la Guía correspondiente.(http://www.hojamat.es/guias/guiaopen/guia8.pdf)

Variantes

¿Existen soluciones similares con cuatro cifras? Sí: 4623 si las dos primeras son el doble de las segundas, y 1224 y 4488 en el caso contrario. Intenta demostrarlo o encontrarlas con la hoja de cálculo.

¿Se podrían estudiar cuestiones similares con n2-4 o con n2 – 9? 

Como pista, incluimos estos números: 442221, 480240 y 760380

¿Y con n2+1?


No hay comentarios: