lunes, 20 de octubre de 2025

En cuantas ternas pitagóricas (2)

En la entrada anterior se discutió la posibilidad de que un número fuera hipotenusa de varias ternas pitagóricas. Continuará aquí el tema calculando de cuantas ternas puede ser cateto un número dado N.

Se tratará de buscar soluciones a la ecuación

N2=a2-b2

Estamos suponiendo implícitamente que a es mayor que b, luego podemos descomponer la diferencia de cuadrados de esta forma, llamando a=b+k

N2=(a+b)(a-b)=(b+k+b)(b+k-b)=k(2b+k)

Esto nos lleva a que la diferencia k entre a y b ha de ser divisor de N2, al igual que 2b+k. Es claro que

N2=k(2b+k)>k2, luego k<N

Estas consideraciones nos llevan a un protocolo para encontrar ternas con un cateto dado N.

Recorremos todos los divisores de N, sean K.

Para cada K estudiamos N2/K-K, que ha de ser un número par positivo. Su mitad será el número b, el otro cateto. La hipotenusa se calculará como b+K.

Este procedimiento lo plasma la siguiente función para VBasic:

Function escateto$(n)

Dim s$

Dim k, b, m, a, nn

 

s = "" ‘Contenedor de soluciones

m = 0 ‘Número de soluciones

nn = n * n’ Cuadrado de n

For k = 1 To n

If nn / k = nn \ k Then ‘Es un divisor del cuadrado

b = (nn / k - k) / 2 ‘Posible valor del otro cateto

If b > 0 And b = Int(b + 0.000001) Then ‘Solución válida

m = m + 1’Aumenta el contador

a = b + k ‘Hipotenusa

s = s + "+" + ajusta(a) + "^2-" + ajusta(b) + "^2" + " " ‘Se incorpora la solución

End If

End If

Next k

s = ajusta(m) + ":: " + s ‘Toma nota del número de soluciones

escateto = s

End Function

 

Esta función es razonablemente rápida, y eso que pueden aparecer más de 20 soluciones frecuentemente.

 

Un ejemplo: ¿De cuántas ternas pitagóricas es cateto el número 812?

Resultan trece ternas con cateto 812:

13:: +164837^2-164835^2 +82420^2-82416^2 +41213^2-41205^2 +23555^2-23541^2 +11788^2-11760^2 +5915^2-5859^2 +5713^2-5655^2 +3413^2-3315^2 +2900^2-2784^2 +1780^2-1584^2 +1537^2-1305^2 +1037^2-645^2 +1015^2-609^2

Se puede comprobar alguna, y la diferencia de cuadrados deberá ser 659344, el cuadrado de 812.

Es evidente que el posible cateto deberá ser un número tal que su cuadrado sea compuesto y que sea producto de un par de divisores de la misma paridad, como veremos más adelante. Esta condición la cumplen todos los números enteros positivos. Por esa razón todos pueden ser catetos.

En esta captura de pantalla de un rango elegido al azar se observa que todos los números naturales pueden ser catetos, pero que los números primos sólo lo son una vez:

 


Llaman la atención las 40 soluciones de 2208.

Otro procedimiento

El protocolo elegido es el más rápido, pero se puede usar un argumento sencillo y popular para encontrar las soluciones.

La idea es muy simple:

Si N2=a2-b2=(a+b)(a-b), los paréntesis han de ser de la misma paridad, llamémosles m y n respectivamente, ya que a=(m+n)/2 y b=(m-n)/2, y ambos han de ser enteros. Entonces la búsqueda de soluciones se reduce a encontrar productos de dos factores, ambos pares o ambos impares, con resultado N2.

Esta idea daría lugar a otra función parecida a la anterior:

Function escateto2$(n)

Dim s$

Dim k, b, m, a, nn, kk

 

s = ""

m = 0

nn = n * n

For k = 1 To nn

If nn / k = nn \ k Then

kk = nn / k

If k > kk And (k - kk) Mod 2 = 0 Then ‘Aquí se exige misma paridad

a = (k + kk) / 2: b = (k - kk) / 2

m = m + 1

s = s + "+" + ajusta(a) + "^2-" + ajusta(b) + "^2" + " "

End If

End If

Next k

s = ajusta(m) + ":: " + s

escateto2 = s

End Function

 

Probamos la función con el anterior ejemplo, 812:

13:: +1015^2-609^2 +1037^2-645^2 +1537^2-1305^2 +1780^2-1584^2 +2900^2-2784^2 +3413^2-3315^2 +5713^2-5655^2 +5915^2-5859^2 +11788^2-11760^2 +23555^2-23541^2 +41213^2-41205^2 +82420^2-82416^2 +164837^2-164835^2

Obtenemos los mismos trece resultados.

Casos particulares

Primos impares

Los números primos impares presentarán siempre un resultado, pues, si llamamos p al primo, su cuadrado p2 tendrá tres divisores, 1, p y p2, con lo que el único par a, b con a>b y de la misma paridad será 1 y p2. Las soluciones serán, pues, a=(p2+1)/2 y b=(p2-1)/2. En la siguiente imagen se observa esto en un pequeño rango de primos:



Semiprimos impares no cuadrados

Los números de este tipo son producto de dos primos impares distintos, p1 y p2. Sus divisores serán 1, p1, p2 y p1p2. Los divisores de su cuadrado serán 1, p1, p2, p1p2, p12, p22, p1p22, p2p12, p12p22, nueve divisores, que dan lugar a cuatro pares de productos con factores distintos de igual paridad. Por ejemplo, 15 y 35 se descomponen así:

15     4:: +113^2-112^2 +39^2-36^2 +25^2-20^2 +17^2-8^2

35     4:: +613^2-612^2 +125^2-120^2 +91^2-84^2 +37^2-12^2

Dejo como ejercicio sencillo razonar que los semiprimos no cuadrados pares presentan una descomposición:

14     1:: +50^2-48^2

26     1:: +170^2-168^2

Los semiprimos cuadrados se descomponen de una forma el 4 y de dos los impares.

4       1:: +5^2-3^2      

49     2:: +1201^2-1200^2 +175^2-168^2       

169   2:: +14281^2-14280^2 +1105^2-1092^2        

Las potencias de un primo tienen tantas descomposiciones como indique su exponente:

3       1:: +5^2-4^2      

9       2:: +41^2-40^2 +15^2-12^2

27     3:: +365^2-364^2 +123^2-120^2 +45^2-36^2

81     4:: +3281^2-3280^2 +1095^2-1092^2 +369^2-360^2 +135^2-108^2  

243   5:: +29525^2-29524^2 +9843^2-9840^2 +3285^2-3276^2 +1107^2-1080^2 +405^2-324^2   

Hay que recordar que se debe razonar sobre el cuadrado del número propuesto.

Esta función de número de descomposiciones no es multiplicativa, por lo que no es útil descomponer N en factores y contar uno por uno para luego multiplicar.

Un ejemplo:

4       1:: +5^2-3^2                                                   

9       2:: +41^2-40^2 +15^2-12^2                                              

36     7:: +325^2-323^2 +164^2-160^2 +111^2-105^2 +85^2-77^2 +60^2-48^2 +45^2-27^2 +39^2-15^2

Dejo aquí los casos particulares

Fórmula general

Lo que sigue es una adaptación de mi estudio contenido en https://hojaynumeros.blogspot.com/2017/01/numero-de-descomposiciones-en.html

En él se explican todos los casos de descomposición en diferencia de cuadrados, pero al no ser hipotenusa y cateto, se admite el caso en el que b=0. Bastará restar una unidad a la fórmula general para cuadrados, o, preferiblemente, corregir la función que se propone, restando 1 al final. Se copia a continuación:

Public Function numcatetos(n)

Dim p, q, r, s, t, nm

 

q = n * n: p = 0

While q Mod 2 = 0: q = q / 2: p = p + 1: Wend 'Extraemos la potencia de 2

If p = 1 Then nm = 0: Exit Function 'Caso imposible

'q es la parte impar

If q = 1 And p > 1 Then nm = Int((p - 1) / 2) + (p - 1) Mod 2

'Es potencia de 2 pura

If p = 0 And q > 1 Then t = fsigma(q, 0): nm = Int(t / 2) + t Mod 2

'Es un número impar

If p > 1 And q > 1 Then t = fsigma(q, 0): nm = t * Int((p - 1) / 2) + ((p - 1) Mod 2) * (Int(t / 2) + t Mod 2)

numcatetos = nm - 1

'Tiene parte par y parte impar

End Function

 

Con esta función doy por terminado el tema del número de ternas pitagóricas que produce un número dado, tanto como hipotenusa como siendo un cateto.

No hay comentarios: