martes, 31 de marzo de 2020

Números que equivalen a áreas de triángulos pitagóricos



El 18 de septiembre de 2009 publiqué una de mis primeras entradas de este blog, con el siguiente breve texto:

Ternas pitagóricas que comparten área

La lectura de la biografía de Lewis Carroll me ha sugerido el proponer la siguiente búsqueda, inspirada en un problema que le impidió dormir una noche:

¿Qué números enteros equivalen al área de un triángulo rectángulo de lados también enteros, de tres formas distintas?

La primera solución es 840, porque las tres ternas

15, 112 y 113
24, 70 y 74
40, 42 y 58

pertenecen a lados de triángulos rectángulos de área 840.

¿Cuáles son las siguientes soluciones?

A partir de ella, mi amigo Claudio Meller (https://twitter.com/MellerClaudio) publicó en OEIS el resto de soluciones, como puedes comprobar en http://oeis.org/A177021

A partir de cálculos que no vienen al caso, me ha apetecido volver a este tema, estudiando otros casos parecidos y los procedimientos para llegar a ellos.

Procedimiento general de búsqueda

Las condiciones del problema se traducen, dado un número N, en encontrar los dos catetos de una terna pitagórica adecuada, sea a2+b2=c2, tales que a*b=2*N. Bastará entonces buscar pares de divisores de 2N que sean catetos en una terna pitagórica. La hipotenusa c no tiene por qué intervenir.

Si organizamos la búsqueda con estas propiedades, será útil contar los pares válidos, para ver a cuántas áreas equivale N. También, según decidimos últimamente, podemos crear una función que devuelva una cadena de texto con los valores de los catetos. Proponemos esta, para Excel o Calc:

Function areapitag$(n)
Dim p, q, m
Dim s$
s$ = "": m = 0  ‘Se pone a cero el contador y el resultado
For p = 2 To Sqr(2 * n) ‘Un cateto no puede sobrepasar la raíz cuadrada de 2N
q = 2 * n / p ‘El otro divisor
If q = Int(q) Then ‘Tiene que ser entero
‘Si es terna pitagórica, se memoriza y se incrementa el contador
If escuad(p ^ 2 + q ^ 2) Then m = m + 1: s$ = s$ + " # " + Str$(p) + ", " + Str$(q)
End If
Next p
If s$ = "" Then s$ = "NO" Else s$ = Str$(m) + s$
areapitag = s
End Function

Así, si tomamos, por ejemplo el 840 del texto de arriba, nos devolverá:
AREAPITAG(840)=” 3 #  15,  112 #  24,  70 #  40,  42”

Significará que hay tres soluciones (primer 3 de la cadena) y que los catetos de cada una son (15,112), (24,70) y (40, 42), tal como afirmamos hace más de diez años.

Con esta función, si leemos el primer dígito del resultado S$, sabremos cuántas soluciones presenta cada número dado. En Excel podemos usar LEFT$(S;2), sabiendo el número está precedido por un espacio en blanco, o bien MID$(S,2,1). En cualquier bucle de búsqueda que organicemos, usaremos una de estas dos condiciones para identificar qué números no presentan solución o bien una o más de una.

Antes de emprender búsquedas, hay que advertir que si un número a posee un número de soluciones, también las tendrá a*m2, por la generación de las distintas ternas como múltiplos de una terna primitiva.

Números que son área de al menos una terna

La primera cuestión puede consistir en descubrir qué números coinciden con al menos un área de triángulo pitagórico. Con la función anterior areapitag basta exigir que el resultado sea distinto de “NO”. Los primeros números de este tipo son:




Todos equivalen a un área, salvo 210 que admite dos. Están ya publicados, como algunos de los que estudiaremos hoy.

Areas of Pythagorean triangles: numbers which can be the area of a right triangle with integer sides.

6, 24, 30, 54, 60, 84, 96, 120, 150, 180, 210, 216, 240, 270, 294, 330, 336, 384, 480, 486, 504, 540, 546, 600, 630, 720, 726, 750, 756, 840, 864, 924, 960, 990, 1014, 1080, 1176, 1224, 1320, 1344, 1350, 1386, 1470, 1500, 1536, 1560, 1620, 1710, 1716, 1734, 1890


Todos los términos son múltiplos de 6.

Se generan en PARI con un código algo oscuro. Es preferible este otro que proponemos, copia de la función areapitag:

for(i=1,2000,m=0;for(p=2,sqrt(2*i),q=2*i/p;if(q==truncate(q)&&issquare(p^2+q^2),m+=1));if(m>0,print1(i,", ")))

Puedes comprobar que se llega al mismo listado.

De ellos, algunos solo admiten una representación, como se ha visto en la tabla de más arriba. Si en el código PARI sustituimos m>0 por m==1, los obtendremos:

6, 24, 30, 54, 60, 84, 96, 120, 150, 180, 216, 240, 270, 294, 330, 336, 384, 480, 486, 504, 540, 546, 600, 630, 720, 726, 750, 756, 864, 924, 960, 990, 1014, 1080, 1176, 1224, 1344, 1350, 1386, 1470, 1500, 1536, 1560, 1620, 1710, 1716, 1734, 1920, 1944,…

Observamos que ya no está 210, que equivale a dos áreas. Esta sucesión no figura en OEIS.

Si en el código cambiamos m==1 por m==2, obtendremos los números que equivalen a dos áreas.

210, 1320, 1890, 2730, 4914, 5250, 5280, 7980, 10290, 11880, 17010, 18480, 19656, 21120, 24570, 25410, 29400, 30600, 32130, 33000, 34650, 35490, 41580, 44226,…

Por último, si igualamos a 3, resultará la sucesión con la que comenzamos la entrada

A177021                            Numbers which are the area of exactly three Pythagorean triangles.                        
840, 3360, 7560, 10920, 13440, 21000, 30240, 31920, 41160, 43680, 53760, 68040, 84000, 98280, 101640, 120960, 127680, 141960, 164640, 166320, 174720, 189000, 215040, 242760, 272160, 273000, 286440, 287280, 303240, 336000, 370440, 393120, 406560, 444360
AUTHOR Claudio Meller, on a suggestion by Antonio Roldán, Dec 08 2010

Para finalizar, si deseas practicar un poco, intenta encontrar estos números con nuestra función areapitag (con Excel o PARI). En esta sucesión a(n) es el menor número que equivale a las áreas de n triángulos pitagóricos:

A055193                            Smallest number that is the area of n distinct Pythagorean triangles.
6, 210, 840, 341880, 71831760, 64648584000, 2216650756320, 22861058133513600

jueves, 19 de marzo de 2020

Números casi amigos o comprometidos



Hoy repasaremos los llamados números comprometidos o casi amigos. Son dos números m y n tales que la suma de los divisores no triviales de uno coincide con el valor del otro. Así, son de ese tipo, 48 y 75, ya que la suma de divisores (función SIGMA) de 48 es 48+24+16+12+8+6+4+3+2+1=124, pero si no contamos el 1 y el propio 48 (divisores triviales) nos queda 75, que es el otro número. Recíprocamente, SIGMA(75)=124, y eliminando 75 y 1, nos queda 48.

Esta idea de divisores no triviales se recoge en la función de Chowla, que se puede definir como

CHOWLA(n)=SIGMA(n)-n-1. 

Así que en estos números se cumple

CHOWLA(48)=75 y CHOWLA(75)=48

Es evidente que esta función tiene valor 0 si un número es primo. Esto confirma que estos  números que estudiamos son todos compuestos.

Es trivial también que la función SIGMA coincide en ambos números m y n del par (en el ejemplo, 124) y que su valor es m+n+1. Este hecho se toma también como definición de números comprometidos:



Estos números están publicados en varios sitios. Destacamos la de OEIS, en la que se les da el nombre de “números comprometidos”:


Betrothed (or quasi-amicable) numbers.

48, 75, 140, 195, 1050, 1575, 1648, 1925, 2024, 2295, 5775, 6128, 8892, 9504, 16587, 20735, 62744, 75495, 186615, 196664, 199760, 206504, 219975, 266000, 309135, 312620, 507759, 526575, 544784, 549219, 573560, 587460, 817479, 1000824, 1057595, 1081184,…

Están insertados por pares, por lo que son casi amigos 48 con 75, 140 con 195, y así hasta el final.

Búsqueda de números comprometidos

No es difícil encontrar estos pares de números. En la página de OEIS enlazada más arriba podéis consultar un procedimiento en PARI, pero, es tan sintético, que es preferible desarrollar una función en VBasic de Excel, aunque se traduce fácilmente a otro lenguaje de programación.

Para cada número N, calcularemos la función SIGMA, suma de divisores y analizaremos si es mayor que N+1.

Si lo es, la diferencia M=SIGMA(N)-N-1 es un candidato a pareja de N

Si SIGMA(M)=M+N+1, hemos dado con un número N del tipo buscado y M será su pareja.

La función SIGMA se ha usado mucho en este blog. Una versión sencilla la tienes en https://hojaynumeros.blogspot.com/2019/10/la-funcion-sigma-y-sus-traslados.html

Con ella construimos una función que nos devuelva un 0 si el número no es comprometido, o su pareja M si lo es.

Function comprometido(n)
Dim m, s, c
s = sigma(n)
If s > n + 1 Then ‘Sigma suficientemente grande
‘Si m cumple la reciprocidad, vale, Si no, devuelve un cero
m = s - n - 1: If sigma(m) = m + n + 1 Then c = m Else c = 0
End If
comprometido = c
End Function

Esta función permite reproducir fácilmente las parejas comprometidas ya publicadas. Basta organizar una búsqueda y publicar solo las que presentan un resultado distinto de cero. En Excel las primeras serían:


Era previsible que las parejas aparecieran duplicadas, por la reciprocidad interna en ellas. Se puede programar que solo se publique uno de los miembros de la pareja.

De esta función deducimos un listado sencillo en PARI:

for(n=1,500,a=sigma(n)-n-1;if(a>1,if(sigma(a)-a-1==n, print1(n, ", "))))

Se confirma el listado:

48, 75, 140, 195, 1050, 1575, 1648, 1925, 2024, 2295, 5775, 6128, 8892, 9504, 16587, 20735,…

Cuestiones derivadas

Todos los pares conocidos, hasta 1010, tienen distinta paridad.

Con esta función podemos preguntarnos cuál es el primer par de comprometidos a partir de un número, por ejemplo, un millón. Hemos organizado la búsqueda y resultan
1000824 y 1902215

También podemos interpretar esto como una secuencia cíclica de dos pasos:
CHOWLA(CHOWLA(N))=N

Existen números en los que estos ciclos son de más de dos pasos. Son los casi sociales, estudiados por Mitchell Dickerman, como 1215571544, que da lugar a un ciclo de ocho pasos:

1215571544
1270824975
1467511664
1530808335
1579407344
1638031815
1727239544
1512587175
1215571544

Por último, estos números parecen no poseer otras propiedades, aparte de ser compuestos. Entre los primeros no hemos encontrado cuadrados, ni triangulares, o semiprimos, por ejemplo. Así que los dejamos aquí.

martes, 10 de marzo de 2020

Suma y producto de cubo y otro tipo (2)



En la anterior entrada estudiamos los números que son suma y también producto de un cubo y un capicúa. En esta buscaremos casos similares con cuadrados y triangulares.

Caso cubo y cuadrado

Tal como anunciamos en la entrada anterior, si sustituimos ESCAPICUA en la función CUBOYOTRO por ESCUAD, que determina si un número es cuadrado perfecto, podríamos repetir el estudio para cuando los factores y sumandos fueran uno cubo y otro cuadrado. El listado de esta otra función puede ser el siguiente:

Public Function escuad(n) As Boolean
If n < 0 Then
escuad = False
Else
If n = Int(Sqr(n)) ^ 2 Then escuad = True Else escuad = False
End If
End function

Efectuando la sustitución, resultan los números de la tabla, como los menores que cumplen las condiciones exigidas:



Ejemplo: 1323=3^3+36^2=3^3*7^2

Con PARI hay que cambiar un poco el algoritmo, por las peculiaridades de la función issquare:

condi1(n)= my(c=0); a=truncate(n^(1/3)); for(x=2, a, for(b=2,sqrt(n),if(n==x^3*b^2,c=1)));c
condi2(n)= my(c=0); a=truncate(n^(1/3)); for(x=1, a, b=n-x^3;if(issquare(b)&&b>0,c=x));c
for(y=1,20000, if(condi1(y)&&condi2(y),print1(y,", ")))

Así podemos ampliar el listado anterior:

72, 108, 128, 392, 512, 576, 968, 1323, 1372, 1568, 1944, 2000, 2304, 2312, 2700, 2888, 3200, 3267, 3456, 3528, 4000, 4608, 5400, 6272, 6400, 6561, 6912, 8192, 8748, 9000, 9800, 10125, 10952, 12168, 12348, 12544, 14283, 14400, 16200, 16928, 17496, 18000, 18252, 18496, 19773,…

La simultaneidad de un cubo y de un cuadrado en un producto hace sospechar que algunos términos sean potencias perfectas en esta sucesión. En efecto, los primeros casos son:

128=2^7, 512=2^9, 6561=3^8, 8192=2^13, …

En ellos el exponente se ha formado combinando el 3 del cubo con el 2 del cuadrado.

Caso cubo y triangular

En la función CUBOYOTRO podemos sustituir la función ESCUAD por la ESTRIANGULAR. Un número es triangular cuando al multiplicarlo por 8 y sumar 1 se convierte en cuadrado. Lo puedes ver con un sencillo desarrollo:

8*T(n)+1 = 8*n*(n+1)/2+1 = 4n2+4n+1 =(2n+1)2

Con esta propiedad se construye un criterio para saber si un número es triangular:

Function estriangular(n) As Boolean
Dim a
If escuad(8 * n + 1) Then estriangular = True Else estriangular = False
End Function

Sustituimos en CUBOYOTRO la función ESCAPICUA (o ESCUAD) por esta otra y obtendremos los números que son producto de cubo y triangular y también una suma del mismo tipo. Los primeros son:



Como en anteriores ocasiones, C1 y C2 son los dos cubos y CAP1, CAP2, en este caso, los triangulares (se ha deslizado la abreviatura de capicúa).

Por ejemplo, 1029=9^3+300=9^3+24*25/2, suma de cubo y triangular, y además, 1029=7^3*3=7^3*2*3/2. Producto de cubo y triangular.

En estos ejemplos está incluido el 0 como triangular. En el siguiente listado, obtenido con PARI, no figuran:

48, 405, 567, 648, 750, 960, 1029, 1215, 1344, 1680, 1848, 2024, 2106, 2160, 2835, 2880, 3240, 3248, 3430, 3480, 3672, 4760, 5145, 5328, 5670, 7203, 8100, 8232, 10125, 12160, 12320, 12555, 13392, 15000, 15147, 15309, 15435, 15624, 16128, 16848, 17982, 18865, 19656,…

Con vistas a estudiar este lenguaje, se inserta el código usado:

condi1(n)= my(c=0); a=truncate(n^(1/3)); for(x=2, a, for(b=2,sqrt(2*n),if(n==x^3*b*(b+1)/2,c=1)));c
condi2(n)= my(c=0); a=truncate(n^(1/3)); for(x=1, a, b=n-x^3;if(issquare(8*b+1)&&b>0,c=x));c
for(y=1,20000, if(condi1(y)&&condi2(y),print1(y,", ")))

Cubos con primos

Para esta modalidad necesitamos la función  ESPRIMO, muy usada en este blog. La puedes consultar, por ejemplo,  en la dirección


Al igual que se procedió en casos anteriores, sustituimos ESCAPICUA por ESPRIMO en la función CUBOYOTRO, con el resultado:


Si observamos las dos últimas filas, descubriremos muchos números primos como base del segundo cubo. En este caso, el número tendrá una descomposición en factores primos del tipo N=p^3*q, con lo que poseerá ocho divisores si p es distinto de q, porque TAU(N)=(3+1)(1+1)

Por ejemplo, 189=2^3+181=3^3*7, y sus ocho divisores son  189, 63, 27, 21, 9, 7, 3 y 1.

Si p=q, N=p^4, como es el caso de 81, y TAU(81)=1+4=5, siendo sus divisores 81, 27, 9, 3 y 1.

Terminamos aquí los casos. Podríamos ahora repetir el trabajo con cuartas o quintas potencias, pero se intuye que no tendrían demasiado interés. Como propuesta, se incluyen los primeros de algunos casos:

Potencias cuartas con primos

Número               Descomposición                                           
32          C1  1 PR1  31 C2  2 PR2  2                                         
48          C1  1 PR1  47 C2  2 PR2  3                                         
80          C1  1 PR1  79 C2  2 PR2  5                                         
112        C1  3 PR1  31 C2  2 PR2  7                                         
208        C1  3 PR1  127 C2  2 PR2  13                                    
243        C1  2 PR1  227 C2  3 PR2  3                                       

Por ejemplo, 112=3^4+31=2^4*7

Potencias cuartas con cuadrados

Número               Descomposición          
                                 
400        C1  4 PR1  144 C2  2 PR2  25                      
2025      C1  6 PR1  729 C2  3 PR2  25                      
3600      C1  6 PR1  2304 C2  2 PR2  225                 
6400      C1  8 PR1  2304 C2  4 PR2  25                   
15625    C1  10 PR1  5625 C2  5 PR2  25                 

Así, 3600=6^4+48^2=2^4*15^2

Es fácil razonar que todos los números de este tipo son cuadrados.

Potencias cuartas con triangulares

16          C1  1 PR1  15 C2  2 PR2  1                          
96          C1  3 PR1  15 C2  2 PR2  6                          
2401      C1  4 PR1  2145 C2  7 PR2  1                      
3040      C1  5 PR1  2415 C2  2 PR2  190                 

No tiene interés seguir con más ejemplos. Aquí terminamos.