Mostrando entradas con la etiqueta Estudios. Mostrar todas las entradas
Mostrando entradas con la etiqueta Estudios. Mostrar todas las entradas

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.

martes, 7 de octubre de 2025

¿En cuantas ternas pitagóricas? (1)


No todos los números naturales pueden ser hipotenusas o catetos en una terna pitagórica. Por ejemplo, el 23 no es ni uno ni otro. Otros números pertenecen a varias ternas distintas, como ocurre, por ejemplo, con el número 27925, que es hipotenusa en siete ternas y cateto en una:

Como hipotenusa: 27925^27=2004^2+27853^2=5875^2+27300^2=7819^2+26808^2=11680^2+25365^2=13284^2+24563^2=16755^2+22340^2=18315^2+21080^2

Como cateto: 27925^2=72605^2-67020^2

¿De qué depende esto?

Lo veremos por separado, ya que necesitamos teorías distintas.

Un número como hipotenusa

Estudio teórico

En entradas anteriores de mi blog se ha estudiado bien la descomposición de un número en suma de cuadrados. Recientemente he encontrado un documento que lo explica claramente:

https://www.math.purdue.edu/~jlipman/MA598/sums-of-two-squares.pdf

En nuestro caso, el número a descomponer es el cuadrado de la hipotenusa, por lo que se le puede aplicar tres criterios contenidos en el mismo. Si descomponemos N en sus factores primos resultará:

El factor 2 no influye en el número de cuadrados y se puede ignorar. La razón, según se explica en el documento, es la igualdad

(x+y)2+(x-y)2 = 2(x2+y2)

La primera suma es par, luego los dos cuadrados tienen la misma paridad, lo que justifica que se puedan expresar como suma y diferencia de dos números naturales. Según el segundo miembro, su mitad también será una suma de cuadrados. Así que podemos dividir el número a estudiar entre 2 todas las veces que deseemos, porque el número de sumas de cuadrados no cambiará.

Los factores primos del tipo 4k+3, que suelen impedir la descomposición en dos cuadrados, figurarán todos con exponentes pares, por ser un cuadrado, por lo que, según la teoría, tampoco impiden la descomposición, y tampoco aportan nuevas soluciones. Se pueden ignorar.

Los factores del tipo 4K+1 son los que facilitan la descomposición en suma de dos cuadrados, y según el documento citado (siguiendo a Gauss) producirán un número de resultados dado por la fórmula

(La imagen es un recorte del documento)



Nos interesa el caso inferior, aplicable a cuadrados. En la fórmula, er es el exponente de un factor primo del tipo 4K+1, únicos que nos interesan.

Sólo serán hipotenusas de ternas pitagóricas los números que contengan factores del tipo 4k+1.

El número de ternas de las que puede ser hipotenusa un número dado sólo depende de la signatura prima (conjunto de exponentes) y no de los números primos presentes (si son del tipo 4K+1)

Lo aplicamos al ejemplo 27925. Su descomposición factorial es 52*1117. Ambos primos son del tipo 4K+1, luego nos interesan los exponentes de su cuadrado, que serían 4 y 2 respectivamente. Luego, por la fórmula de la imagen de más arriba:

S(n)=((4+1)(2+1)-1)/2=14/2=7

Ese fue el número de sumas de dos cuadrados (y por tanto ternas pitagóricas) que figuran al principio de este estudio.

Probaremos con otro ejemplo: 1980=22*32*5*11.

En su cuadrado no influirán los factores 2, 3 ni 11 (el 2 y los del tipo 4K+3), luego sólo usaremos los exponentes del cuadrado de 5, es decir:

S(1980)=((2+1)-1)/2=1

En efecto, usando una función que se presentará más adelante se obtiene el resultado

1:: =1188^2+1584^2

Obtención de las sumas de cuadrados

La siguiente función en VBasic resuelve la búsqueda de esas sumas. En ella se va formando un cuadrado como suma de impares, la variable k.

Function espitag(n) As String

Dim k, p, d, m

Dim s$

 

s = "" ‘Contenedor de soluciones

m = 0 ‘Contador de sumas

k = 1: p = 3 ‘Inicio de los cuadrados mediante suma de impares

While k < n * n / 2 ‘Probamos el primer cuadrado de la suma

d = n * n – k ‘Posible segundo cuadrado

If escuad(d) Then ‘Nueva solución para la suma de cuadrados

m = m + 1

s = s + "=" + ajusta(Sqr(k)) + "^2+" + ajusta(Sqr(d)) + "^2"

End If

k = k + p: p = p + 2 ‘Siguiente cuadrado

Wend

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

End Function

Esta función te devuelve el listado de soluciones. Lo vemos con un ejemplo:

1950=2*3*5^2*13

Si le aplicamos la función nos devuelve

S(1950)=7::216^2+1938^2=480^2+1890^2=546^2+1872^2=750^2+1800^2=990^2+1680^2=1170^2+1560^2=1224^2+1518^2=2*3*5^2*13

Son siete sumas de cuadrados. Según la teoría, la justificación es el cálculo S(1950)=((4+1)(2+1)-1)/2=14/2=7

Hemos ignorado el 2 y el 3, y usado los exponentes del cuadrado de 5^2 y 13.

La ventaja de la función es que nos da el número de sumas y el listado de las mismas.

¿Qué números pueden resultar al contar ternas?

Según lo visto, cualquier número natural puede ser el resultado de contar ternas. Esto es así por la forma de calcularlo.


Sea un número cualquiera K. Si lo multiplicamos por 2 y añadimos 1, nos resultará un número impar, que se podrá igualar al producto de paréntesis de la fórmula empleada. Como trabajamos con exponentes, bastará usar bases del tipo 4K+1. Lo vemos con un ejemplo:

¿Qué números producirán trece ternas distintas?

Multiplicamos 13 por 2 y añadimos 1, con lo que obtenemos 27, que se puede descomponer en 3*3*3. Esos factores provienen de exponentes del cuadrado (que serían 2), por lo que basta multiplicar tres números primos del tipo 4K+1, por ejemplo, 5*13*17=1105. Le aplicamos la función y queda:

S(1105) 13:: =47^2+1104^2=105^2+1100^2=169^2+1092^2=264^2+1073^2=272^2+1071^2=425^2+1020^2=468^2+1001^2=520^2+975^2=561^2+952^2=576^2+943^2=663^2+884^2=700^2+855^2=744^2+817^2

Otro ejemplo: ¿Cuándo resultarán ocho ternas?:

8*2+1=17, que es primo, luego la única posibilidad es que se trate de la potencia octava de un primo del tipo 4K+1. Usamos las más pequeña, 5^8=390625, con el resultado de ocho ternas:

S(390625) 8:: =29625^2+389500^2=80620^2+382215^2=109375^2+375000^2=137500^2+365625^2=164833^2+354144^2=210000^2+329375^2=234375^2+312500^2=257400^2+293825^2

Primos del tipo 4K+1

Un caso especial lo constituyen los números que son primos del tipo 4K+1, también llamados primos pitagóricos. Como son muy interesantes, les dedicaré un estudio especial cuando se termine el tema actual.

Catetos de una terna

Esta entrada se ha alargado algo, y continuaré en la siguiente con el tema de los catetos y algún otro.

lunes, 20 de mayo de 2024

Regresos 9 – Como una función inversa

Hace tiempo publicamos unas entradas dedicadas a investigar si un número es el resultado de aplicar una función aritmética a otro. No llamamos función inversa a este proceso porque normalmente cada número puede provenir de varios orígenes distintos.

Dado un número natural N cualquiera se intenta encontrar otro número M natural tal que al aplicarle una cierta función aritmética, nos resulte el primero, es decir F(M)=N.

Como en teoría de números suelen existir varias soluciones, elegiremos siempre la menor de ellas. La representaremos con el prefijo MF seguido del nombre de la función.

En este regreso al tema prescindiremos de algunos detalles, e intentaremos generalizar los procesos. Lo efectuaremos mediante una función que nos devuelva el menor número M tal que F(M)=N. Nos basaremos en un esquema mínimo, tanto en VBasic como en PARI, dejando bien destacadas dos líneas en las que modificaremos la función y la cota de búsqueda.

Es muy difícil acotar la búsqueda en general. Una estrategia es la de fijar una cota, por ejemplo 10^4, para números pequeños y tratar luego aparte las excepciones. Si con una cota no aparece el resultado, habrá que ampliarla, y si se sigue obteniendo un resultado negativo, buscar otros métodos teóricos para resolver la cuestión o dejarla como conjetura.

La función que proponemos devuelve un cero si no encuentra resultado, y en caso positivo, devuelve el menor valor que cumpla los requisitos.

En los ejemplos se usan las funciones TAU, SIGMA, PHI, que hemos usado en este blog en algún momento. Puedes buscar ahí sus códigos o definiciones.

Esquema de función

Function mfun(n)
Dim k, a, f, cota
Dim vale As Boolean

'En esta línea concretamos la cota

cota = 10 ^ 4 ‘Para rellenar previamente

k = 1’Inicio de la búsqueda
a = 0 ‘Variable del resultado
vale = False ‘No hay todavía solución
While Not vale And k < cota

'En esta línea concretamos la función
f = tau(k) ‘Para rellenar previamente

If f = n Then vale = True: a = k ‘Se encontró la solución
k = k + 1
Wend
mfun = a
End Function

Hemos rellenado como ejemplo la función TAU, o número de divisores. Aplicada a los primeros números nos devuelve las primeras soluciones de MF_TAU, es decir, los menores números cuya función TAU devuelve el número dado.

Es ilustrativo observar los valores que son potencias de 2, los que son libres de cuadrados, y los que dan un cero. En los primeros se puede comprobar contando, como 64=MF_TAU(7), ya que los divisores de 64 son siete: 1, 2, 4, 8, 16, 32, 64.  Los libres de cuadrados, como el 6, se corresponden con soluciones pares, y los que contienen cuadrados, salvo casos particulares, provienen de impares, como 144=MF_TAU(15). El caso del 17 y el 19 es especial, porque lo que ha ocurrido es que la cota se ha quedado corta. La subimos y queda:

Estos dos ejemplos ilustran el problema con el que nos encontraremos, y es que, a veces, la cota que fijemos se queda pequeña.

Estos valores de MF_TAU están publicados en

http://oeis.org/A005179

1, 2, 4, 6, 16, 12, 64, 24, 36, 48, 1024, 60, 4096, 192, 144, 120, 65536, 180, 262144, 240, 576, 3072, 4194304, 360, 1296, 12288, 900, 960, 268435456

En esta página puedes consultar algunos valores concretos de esta función. Por ejemplo, para N=p primo, el resultado es 2^(p-1). Para un semiprimo de tipo N=pq con p<=q obtendríamos 3^(p-1)*2^(q-1). Son resultados fáciles de razonar, pero no es nuestro objetivo seguir con ellos.

Observamos que los resultados aparecen de forma irregular y que algunos, como el último, requieren cotas grandes. Esto justifica que pensemos en una versión en PARI, que aporta más velocidad y un rango mayor de valores. Podemos usar este código:

ff(n)=numdiv(n) \\Aquí definimos la función

mfun(n)={my(cota=10^8,k=1,a=0,vale=0,f);while(vale==0&&k<cota,f=ff(k);if(f==n,vale=1;a=k);k+=1);a}\\El mismo algoritmo
for(i=1,20,print1(mfun(i),", ")) \\Pedimos resultados en un rango

El código está adaptado a nuestro ejemplo, la función TAU. En la primera línea escribimos la función (aquí numdiv). Dentro del código, podemos alterar la cota, si vemos que es excesiva (10^8).

Lo hemos comprobado en la página oficial de PARI

(https://pari.math.u-bordeaux.fr/gp.html)

 


Función SIGMA

Recuerda que la función SIGMA suma todos los divisores de un número. Generalizaciones de la misma son las funciones SIGMA_K, que suman los divisores elevados al exponente K

(Ver http://hojaynumeros.blogspot.com.es/2011/02/la-familia-de-las-sigmas-1.html y la entrada siguiente).

Cualquier valor elegido al azar no tiene por qué ser el resultado de este tipo de sumas. De hecho, se sabe ya qué valores puede tomar SIGMA(N) y cuáles no.

En nuestro caso deberíamos cambiar la línea que define la función en VBasic:

'En esta línea concretamos la función

f = sigma(k) ‘Para rellenar previamente

La cota la dejamos en 10^3. Pedimos resultados y nos queda:

Observamos la abundancia de ceros, lo que significa que para esos números no hay solución. Podemos aumentar la cota, pero ya sabemos, por estar publicados, en qué casos ocurre esto. No tienen solución los incluidos en http://oeis.org/A007369: 2, 5, 9, 10, 11, 16, 17, 19, 21, 22, 23… La función SIGMA no puede tener nunca estos valores. No existe ningún número cuya suma de divisores sea 17, 19 o 21.

Sí la tienen estos otros (http://oeis.org/A002191): 1, 3, 4, 6, 7, 8, 12, 13, 14, 15, 18, 20…Por ejemplo, el valor 13 se corresponde con la suma de divisores de 9: 9+3+1=13.

Para reproducir esta situación podemos acudir a la siguiente consideración: Para un N dado, SIGMA(N)³1+N, porque ese sería el valor más desfavorable, que se da cuando N es primo. En cualquier otra situación, aparecerán otros divisores, superando así el valor 1+N. así que, N£SIGMA(N)-1. Por tanto, si nos dan un valor fijo K=SIGMA(N),  bastará buscar N en el rango 1…K-1.

Así que, en este caso, la mejor cota es N

Comprobamos las dos soluciones:

Números que siempre tienen solución:

Coinciden con los publicados:

1, 3, 4, 6, 7, 8, 12, 13, 14, 15, 18, 20…http://oeis.org/A002191

Observa que cuando la diferencia entre N y MF_SIGMA(N) es 1, el número de la segunda columna es primo.

En la tabla se intuye que los dobles de los perfectos, como el 12, coinciden con la suma de divisores de su mitad, el 6.

Si imponemos la condición de que MF_SIGMA(N) sea nula, obtendremos el conjunto complementario, de los que no presentan solución:

También hay coincidencia con lo publicado (https://oeis.org/A007369)

Podemos usar una versión en PARI:

ff(n)=sigma(n)
mfun(n)={my(cota=200,k=1,a=0,vale=0,f);while(vale==0&&k<cota,f=ff(k);if(f==n,vale=1;a=k);k+=1);a}
for(i=1,50,if(mfun(i)==0,print1(i,", ")))


Las otras sigmas

Si sumamos los cuadrados de los divisores de un número nos resulta la función SIGMA_2, con los cubos SIGMA_3 y, en general, podemos definir toda la familia para exponentes mayores.

¿Qué números coinciden con la suma de los cuadrados de los divisores de otros?

En este caso bastará usar las funciones predefinidas que ya hemos usado en otra ocasión

(Ver https://hojaynumeros.blogspot.com/2011/03/la-familia-de-las-sigmas-2.html)

Obtenemos así la lista de números cuya MF_SIGMA_2 está definida:


Entre ellos están los de la forma 1+p
2 con p primo.

Figuran en http://oeis.org/A001157, pero con algunos repetidos respecto a nuestra sucesión.

En PARI

Como este lenguaje no tiene implementadas las SIGMAS_K, deberemos introducirlas en la línea de ff:

ff(n)=sumdiv(n, d, d^2)
mfun(n)={my(cota=200,k=1,a=0,vale=0,f);while(vale==0&&k<cota,f=ff(k);if(f==n,vale=1;a=k);k+=1);a}
for(i=1,300,if(mfun(i)<>0,print1(i,", ")))

El uso de sumdiv es muy potente. Recorremos con él los divisores d y sumamos d^2 (en este caso).

Invitamos a los lectores a ampliar la cuestión, modificando la primera línea, a SIGMA_3, SIGMA_4, y demás. Deben obtener:

Para SIGMA_3: 1, 9, 28, 73, 126, 252, 344, 585, 757,…(tarda un poco) (https://oeis.org/A001158)

Para SIGMA_4: 1, 17, 82, 273, 626,…( https://oeis.org/A001159)

En PARI

mfsigma3(n)={k=0;while(k<=n&&sumdiv(k, d, d^3)<>n, k=k+1);if(k>=n,k=0); return(k)}

Un caso atractivo es el de USIGMA, que suma sólo los divisores unitarios, que son aquellos d primos con N/d. En este caso, la línea de ff(n) en PARI quedaría así:

ff(n)=sumdiv(n, d, d*(gcd(d,n/d)==1))

Podemos traducir como “sumar todos los divisores d que sean primos con N/d”

Los primeros valores de MF_USIGMA, a partir del 2, son: 2, 3, 4, 5, 0, 7, 8, 9, 0, 6, 0, 13, 0, 0, 16, 10, 0, 12, 0, 0, 0, 14, 0, 25, 0, 27, 0, 18, 0, 21, 32, 0, 0, 22, 0, 37, 0, 28 (Ver  http://oeis.org/A063972)

 

Sumamos y contamos factores primos

Vamos a fijarnos en los divisores primos, y en las funciones que los cuentan y suman.

Función Omega

Esta función cuenta los factores primos distintos de un número natural. No se cuentan las repeticiones, sino el número de primos distintos. Así, w(6)= w(12)= w(18)= w(24)=2, porque todos comparten dos primos distintos, 2 y 3.

Para encontrar MF_OMEGA(N) de un número bastará encontrar el primorial

(http://hojaynumeros.blogspot.com.es/2012/02/el-primorial.html), que contiene tantos factores primos como indique N. Esto es así porque los primoriales tienen como expresión  2*3*5*…*k , y es fácil entender que son los números mínimos que tienen k factores primos distintos.

Para comprobarlo, volvemos a nuestro esquema de búsqueda, usando OMEGA en la línea adecuada:

'En esta línea concretamos la función

f = omega(k) ‘Para rellenar previamente

El resultado es:


Efectivamente, son primoriales. Los últimos los hemos rellenado manualmente.

Con bigomega

Bigomega cuenta los factores primos con repetición. Esto cambia totalmente el planteamiento, porque es fácil ver que MF_BIGOMEGA(N)=2^N

Es fácil de entender: si con factores primos distintos el mínimo vendrá de productos tipo 2*3*5*7…, si se admite repetición, se convertirán en 2*2*2*2…como candidatos a MF_BIGOMEGA

Por cambiar de procedimiento, lo comprobamos con PARI:


Sólo hemos cambiado OMEGA por BIGOMEGA.

Función SOPF

Esta función suma los factores primos de un número sin contar repeticiones. Por ejemplo, sopf(84)=3+2+7=12, porque aunque el factor 2 figura al cuadrado en la descomposición factorial, sólo se cuenta una vez.

Podemos definir MF_SOPF(N) como el mínimo número cuyo resultado en la función SOPF es N. En el ejemplo anterior no sería 84 el valor de MF_SOPF(12). Habría que profundizar más

¿Cómo encontramos el valor de MF_SOPF(N)?

Es fácil encontrar una cota para un número con un valor de SOPF dado, sea, por ejemplo N. Todos los sumandos primos en los que pueda descomponerse N serán menores o iguales que N y como todos son mayores o iguales a 2, su número no sobrepasará N/2. Así que el número buscado tendrá como cota N^(N/2). Es muy amplia, y en la mayoría de los casos se encontrará la solución mucho antes, pero lo importante es que existe y nos permite acotar la búsqueda. La función SOPF la tenemos implementada, por ejemplo en https://hojaynumeros.blogspot.com/2019/11/unidos-por-el-sopf.html

Así que en la línea de definición de la función escribiremos f=sopf(k), dentro de nuestra función básica, y como cota n^(n/2). Resultará en la búsqueda:


Parece que solo los números 1, 4 y 6 no son SOPF(K) para ningún valor de K. En el caso de PARI hay que definir
sopf previamente:


Con este código podemos reproducir las soluciones contenidas en
http://oeis.org/A064502

Con SOPFR

La función logaritmo entero o sopfr es similar a la anterior, pero contando los primos con repetición. Casi todas las consideraciones estudiadas hasta ahora siguen siendo válidas salvo algún detalle:

Ahora el 4 y el 6 poseen valores para la función buscada: MF_SOPFR(4)=4=2*2 y MF_SOPFR(6)=8=2*2*2. El 1 sigue sin presentar solución.

La función sopfr se obtiene con un código similar al de sopf, pero los divisores primos se suman cada vez que aparecen. Están publicados en http://oeis.org/A056240

Función PHI de Euler

Otro caso interesante es el de aquellos números tales que existe un X tal que PHI(X)=N. Recordamos que PHI cuenta los números menores que X y que son primos con él, incluido el 1. Es evidente que X no será menor que N, lo que puede complicarnos la cota de búsqueda. En estos casos elegiremos cotas altas y estudiaremos los casos particulares. En la línea de definición escribiremos:

F=EULER(k)

La tenemos implementada en https://hojaynumeros.blogspot.com/search?q=euler%28

Obtendremos:


Observamos que, a partir del 2, sólo los números pares poseen valores en MF_EULER. Están publicados en
https://oeis.org/A002202

Como en PARI está implementada esta función como eulerphi, es fácil adaptar nuestro código a ella:

Observamos que, salvo el 1, ningún impar es valor de PHI.

 

 

lunes, 13 de mayo de 2024

Sigmas de divisores semiprimos

Al igual que con los divisores habituales y los unitarios, los divisores semiprimos pueden dar lugar a funciones SIGMA y TAU.

En la entrada anterior usamos la función div_semi para encontrar y contar los divisores semiprimos de un número. Esta sería la función TAU en este caso. Bastará cambiar ligeramente estas líneas de su código para sumar en lugar de contar o usar potencias:

If essemiprimo(k) And n / k = n \ k Then ‘Es divisor semiprimo
nn = n: e = 0 ‘Posibles exponentes
If repe Then ‘Caso de repetición
While nn / k = nn \ k: e = e + 1: nn = nn / k: Wend
End If
If repe Then m = m + e Else m = m + 1

La última línea cuenta divisores, pero si la sustituyéramos por m=m+e*k^t o m=m+k^t nos serviría para el cálculo de la familia de las SIGMAS, que suman divisores, o sus cuadrados, o también cualquier potencia. Incluso si el exponente es 0, la función seguiría contando en lugar de sumar, es decir, que sería TAU. Estos pequeños cambios en la función div_semi los daremos por supuestos en cada caso.

Funciones SIGMA

Tradicionalmente, estas funciones han sumado los divisores de un número o bien alguna potencia de ellos. En el caso de los semiprimos les añadiremos _S para distinguirlas. Así SIGMA3_S sumará los cubos de los divisores semiprimos. Por ahora no consideraremos las repeticiones.

La más sencilla será SIGMA_S, que sumará los divisores semiprimos sin contar repeticiones. En la función div_semi sustituiremos m=m+1 por m=m+k. De esta forma podemos calcular la suma sin repetición si usamos el parámetro repe=0. Por ejemplo, para 330 pediríamos DIV-SEMI(330;0). En la imagen podemos comparar la lista de divisores semiprimos con su suma:

Así que, en este caso, SIGMA_S(330)=141

El resultado, para los primeros números es:

Podemos comparar las dos últimas columnas para verificar las sumas.

Las sumas de la segunda columna están publicadas en  https://oeis.org/A076290

Tambien, si cambiamos ligeramente la versión en PARI, obtendremos los mismos resultados. Esta sería la nueva versión:

sigma_s(n)= sumdiv(n, d, (bigomega(d)==2)*d)
print(sigma_s(330))

Su resultado:


Y para los 20 primeros:


Observamos que coinciden con los publicados.

Hemos intentado buscar números s_perfectos, que coincidan con la suma de sus divisores semiprimos, pero no hemos encontrado ninguno para números inferiores a 2*10^6. Entre los 20 primeros son todos s_deficientes, y, según nuestras búsquedas, 30 es el único s_abundante, pues sus divisores primos suman 31: 6+10+15=31

Algunos tipos de sigma_s

Los resultados de la suma de divisores pueden presentar alguna curiosidad. Recorremos posibilidades:

Sigma_s semiprima

Si un número N es semiprimo, el valor de SIGMA_S(N) coincide con N, luego será otro semiprimo. Si no lo es, sí puede serlo SIGMA_S. Estos son los primeros ejemplos:


Observamos algo lógico, y es que las potencias de primos poseen una sigma_s semiprima, pues coincidiría con el cuadrado de ese primo. De paso hemos descubierto que existen infinitas sigmas cuadradas.

Sigma_s cuadrada

Dejamos aparte las sigmas de las potencias de primos, que son todas cuadradas, e investigamos si existen en otros casos. El resultado es


Aparecen tres números poderosos, como 225, 675 y 1125. Estos poseen todos los factores primos con exponentes superiores a la unidad, lo que explica que se esperen sigmas cuadradas.

Sigma_s prima

Por último, destacamos que aparecen bastantes sigmas primas en los primeros números, y que vuelven a aparecer números poderosos.

 


Las otras sigmas

Sumas de cuadrados

Podemos sumar los divisores semiprimos previamente elevados al cuadrado, con lo que lograríamos SIGMA2_S. Basta un pequeño ajuste en nuestras funciones, usando la operación m=m+k^2

Los primeros resultados serían



Por ejemplo, SIGMA2_S(2160)=458, porque esa es la suma de los cuadrados de sus divisores semiprimos:

4^2+6^2+9^2+10^2+15^2=458

El valor de SIGMA2_S(N) es mayor o igual al de SIGMA_S(N), lo que nos abre la posibilidad de que aquí sí existan números s2_perfectos. Y es así, porque en la tabla vemos que SIGMA2_S(16)=16. ¿Existirán más? Los buscamos, y los primeros son: 16, 81, 625 y 2401, es decir, potencias cuartas de primos, en los que su divisor semiprimo es un cuadrado de primo, y al elevarlo al cuadrado, resulta N, que así se convierte en un s2_perfecto.

Hemos acudido a la velocidad de PARI, y al menos, para números inferiores a 10^6, todos los s2_perfectos son potencias cuartas de primos:

 


Otras sigmas de potencias

Las sumas con cubos son:

 


 Igual se encontrarían para otras potencias. Lo dejamos aquí.