Etiqueta

G-HVW1FCKRWL

lunes, 28 de abril de 2025

Testeo de la ecuación de goldbach en Python

Estimados lectores,

Aquí va el código en Python para hacer el testeo de la ecuación de Goldbach:

def es_primo(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

def lista_primos_con_1(hasta):
    """Genera lista de primos estándar + el 1 al principio."""
    primos = [1]
    for num in range(2, hasta+1):
        if es_primo(num):
            primos.append(num)
    return primos

def encontrar_goldbach(Canterior, Cobjetivo):
    primos = lista_primos_con_1(Cobjetivo)
    for i, pi in enumerate(primos):
        if pi == 1:
            continue # saltar el 1 como pi
        # calcular v: sumando todas las diferencias*2 desde pi hasta 1
        v = 0
        for j in range(i, 0, -1):
            v += (primos[j] - primos[j-1]) * 2
        d = abs(v - Canterior)
        s = pi + d
        if es_primo(s) and (pi + s == Cobjetivo):
            return (pi, s)
    return None

# Ejemplo de uso
Canterior = 98
Cobjetivo = 100
resultado = encontrar_goldbach(Canterior, Cobjetivo)

if resultado:
    print(f"{Cobjetivo} = {resultado[0]} + {resultado[1]}")
else:
    print(f"No se encontró descomposición para {Cobjetivo}.")

---

¿Qué hace?

Calcula v sumando las diferencias hacia atrás hasta el 1.

Calcula d = |v - Canterior|.

Calcula s = pi + d.

Verifica si s es primo y pi + s = Cobjetivo.

Si encuentra, devuelve el par (pi, s).

Si no, dice que no encontró.


Saludos,

Maxi

No hay comentarios:

Publicar un comentario

Diálogos con la I.A.: Los Eslavos: un pueblo, un territorio y una historia que ordena Europa

 Hablar de los eslavos es hablar de una de las fuerzas silenciosas que moldearon Europa. No son un imperio, no son una civilización clásica,...