lunes, 24 de mayo de 2010

Cuadrados vecinos de triangulares (2)

Dejamos como propuesta en la entrada anterior el encontrar pares de números consecutivos tales que uno sea triangular y el otro cuadrado, mediante el método de formar una columna de triangulares en una hoja de cálculo, y junto a esa columna formar otra sumando o restando una unidad a los anteriores, y finalmente analizando que resulte un cuadrado perfecto.

Como este método lo hemos desarrollado varias veces en este blog lo dejamos así, como propuesta.

Si sabes escribir código de macros en Calc o en Excel, puedes usar estas dos funciones y una macro de búsqueda (son válidas para ambas hojas de cálculo)

Public Function escuadrado(n) As Boolean
If n = Int(Sqr(n)) ^ 2 Then escuadrado = True Else escuadrado = False
End Function

Public Function estriangular(n) As Boolean
If 8 * n + 1 = Int(Sqr(8 * n + 1)) ^ 2 Then estriangular = True Else estriangular = False
End Function

Sub busqueda()
For i = 1 To 1000000
If escuadrado(i) And estriangular(i + 1) Then MsgBox (i)
Next i
End Sub

Tal como está escrito el código, encontrará números cuadrados tales que al sumarles una unidad se convierten en triangulares. Una búsqueda del 1 a 1000000 obtendríamos los pares:

Cuadrado más uno igual a triangular:

10             9
325           324
11026       11025
374545     374544

Si sustituimos la expresión i+1 en el código por i-1, obtendremos:

Triangulares más uno igual a cuadrados

0             1
3             4
15           16
120         121
528         529
4095       4096
17955     17956
139128   139129
609960   609961


Como el 0 no es triangular, desechamos la primera solución.

Pero esto es fiarse demasiado de la máquina. Invitamos a los lectores a intentarlo sin ordenador. En la siguiente entrada intentaremos resolverlo.