Hace años que vengo publicando estudios y búsquedas en las que es necesario descomponer un número en dos cuadrados. Desde Fermat conocemos la condición de que un número primo deba ser para ello del tipo 4k+1, ya que los contrarios, de forma 4k+3 no admiten esta descomposición.
Gauss estudió el tema y aportó
una fórmula para conocer en cuántas sumas de cuadrados se descompondría un
número concreto, y que resultó depender del número de factores primos de un
tipo y otro que figuraran en la descomposición.
Puedes consultar esa fórmula,
por ejemplo, en
https://hojaynumeros.blogspot.com/2024/03/potencias-equidistantes-de-cuadrados.html.
En ella el factor 2 en un
número no influye en el número de descomposiciones esperadas, sino de los tipos
4k+1 y 4k+3 presentes.
Lo que explico en el párrafo
anterior nos hace ver que si N se descompone en dos cuadrados, también lo hará
2N, ya que la presencia del 2 no influye en el resultado. Por ejemplo:
850=2*52*17=32+292=112+272=152+252
Si lo multiplicamos por 2,
deberían aparecer también tres sumas de cuadrados, y así es:
1700=22*52*17=102+402=162+382=262+322
Si ahora divido las igualdades
correspondientes a 2N entre 2, resultarán las formas de expresar N en promedios
de dos cuadrados:
850=(102+402)/2=(162+382)/2=(262+322)/2
En realidad, estamos ante una
situación algebraica, ya que si N=a2+b2, se tendrá que (a+b)2+(a-b)2=2(a2+b2)=2N
En efecto: 13+25=40, 25-15=10,
que son las primeras soluciones para el promedio, 27-11=16 y 27+11=38, las
segundas, y, por último, 29-3=26, 29+3=32.
Estos razonamientos sugieren
que basta descomponer 2N en dos cuadrados para que aparezca una solución de
promedios para N y que el número de soluciones será el mismo. No es difícil
encontrar una función que realice este trabajo. Otra orientación es la de
buscar todos los cuadrados C menores que N y ver si N+C es cuadrado. No se
tienen en cuenta los promedios en los que los dos sumandos son iguales, lo que
se considera solución trivial.
Como aquí se trata de
comprender y practicar, copio las dos posibilidades:
Buscar si N+C es cuadrado:
Function
entredos$(n)
Dim i, r, a, b, m
Dim s$
s = "" 'La
solución se expresa como texto
m = 0 ‘Contador de soluciones
r = Int(Sqr(n)) 'Primer
valor a ensayar
i = r - 1
While i > 0
'Descendemos valores de cuadrados
b = n - i ^ 2 'Diferencia
entre potencia y cuadrado
a = n + b 'A la
potencia le sumamos la diferencia
If escuad(a) Then m = m + 1: b = Sqr(a): s = s
+ " = (" + ajusta(i) + "^2+" + ajusta(b) +
"^2)/2" ‘Si es cuadrado, hay una solución nueva
i = i - 1
Wend
If s =
"" Then s = "NO" Else s = ajusta(m) + " : " + s
entredos = s 'Si no
hay solución, la respuesta es “NO”
End Function
Descomponer 2N en suma de dos
cuadrados
Public Function
entredos2(n) As String
Dim x, p, m, c
Dim s$
s$ = "": m = 0’ Contenedor
y contador
For x = 1 To Sqr(2
* n - 1)
c = x * x ‘Primer
cuadrado para 2N
p = 2 * n – c ‘Posible
segundo cuadrado
If escuad(p) And p
<= c Then
s$ = s$ + "=(" + ajusta$(x) +
"^2+" + ajusta$(Sqr(p)) + "^2)/2": m = m + 1 ‘Hay
solución y avanza el contador
End If
Next x
If s$ =
"" Then s$ = "NO" Else s$ = ajusta(m) + "::" + s$
entredos2 = s$ ‘Presentación
de resultados
End Function
En la siguiente tabla se puede
observar la concordancia entre los dos métodos, en un rango elegido al azar:
Evidentemente, faltan aquellos números que no admiten descomposición, por contener factores primos del tipo 4k+3 elevado a exponente impar. Son ejemplos 135=33*5, 151, primo tipo 4k+3, o 144=24*32, en el que, al ser cuadrado presentaría la solución trivial
(122+122)/2.
5, 10, 13, 17, 20, 25, 26, 29,
34, 37, 40, 41, 45, 50, 52, 53, 58, 61, 65, 68, 73, 74, 80, 82, 85, 89, 90, 97,
100, 101, 104, 106, 109, 113, 116, 117, 122, 125, 130, 136, 137, 145, 146, 148,
149, 153, 157, 160, 164, 169, 170, 173, 178, 180, 181, 185, 193, 194, 197, 200,
…
Con otra definición equivalente están publicados en https://oeis.org/A004431, y en un comentario aparece el promedio de dos cuadrados. Son interesantes los comentarios y alguna programación en PARI.
Diferencias prefijadas
Las diferencias entre las
bases de los cuadrados que sean solución, han de ser pares, para que su suma
sea par, ya que su resultado es 2N.
Podemos seleccionar entre las
soluciones aquellas que posean una diferencia determinada, a la que llamaremos
2D por ser par. Conociendo ese dato, es fácil dar un criterio para saber si N
admite ser promedio de dos cuadrados cuyas bases se diferencien en 2D.
Comenzaríamos así:
Sería k2+(k+2d)2=2N
2k2+4dk+4d2=2N
k2+2dk+2d2=N, es decir, la ecuación
de segundo grado en k: k2+2dk+(2d2-N)=0
En la página enlazada se sirven de esta fórmula para
definir estos números.
Para que exista solución
entera, el discriminante d2-2d2+N=N-d2 deberá
ser cuadrado. Ese sería el criterio.
Un número N admitirá ser
promedio de dos cuadrados diferenciados en 2d si N-d2 es cuadrado
Por ejemplo, en la tabla se
observa que 130 admite las diferencias 6 y 14, y esto es porque 130-32=121,
cuadrado de 11, y 130-72=81, cuadrado de 9. Implemento en un
buscador, con un rango similar y obtengo: 113, 130, 149, 170, 193, …Los números
130 y 149 son los que presentan diferencia 14 en la tabla.
La expresión N=k2+2dk+2d2
nos permite encontrar las mismas soluciones para números que sean promedio de
dos cuadrados. Basta plantear un doble bucle con k y d. Esta es
la versión en PARI:
for(n=1,10,for(m=1,10,p=n^2+2*m*n+2*m^2;print1(p,",
")))
Si la ejecuto en la página
oficial de PARI/GP obtengo la solución
5, 13, 25, 41, 61, 85, 113,
145, 181, 221, 10, 20, 34, 52, 74, 100, 130, 164, 202, 244, 17, 29, 45, 65, 89,
117, 149, 185, 225, 269, 26, 40, 58, 80, 106, 136, 170, 208, 250, 296, 37, 53,
73, 97, 125, 157, 193, 233, 277, 325, 50, 68, 90, 116, 146, 180, 218, 260, 306,
356, 65, 85, 109, 137, 169, 205, 245, 289, 337, 389, 82, 104, 130, 160, 194,
232, 274, 320, 370, 424, 101, 125, 153, 185, 221, 261, 305, 353, 405, 461, 122,
148, 178, 212, 250, 292, 338, 388, 442, 500, …
Como era de esperar, aparecen
las soluciones desordenadas. Si las ordeno en una hoja de cálculo, coinciden
con las obtenidas por otros procedimientos.
5, 10, 13, 17, 20, 25, 26, 29,
34, 37, 40, 41, 45, 50, 52, 53, 58, 61, 65, 65, 68, 73, 74, 80, 82, 85, 85, 89,
90, 97, 100, 101, 104, 106, 109, 113, 116, 117, 122, 125, 125, 130, 130, 136, 137,
145, 146, 148, 149, …
Se observan dos hechos, como
son la existencia de repetidos, (65 y 85), y también la falta de alguno en el
listado, simplemente porque “tarda más en aparecer”. Por eso, prefiero siempre
algoritmos que devuelvan las soluciones ordenadas.












