top of page
Vintage_background.jpg

CONJECTURA DE GOLDBACH

O programa a seguir solicita um número (par). Depois disso, faz uma varredura para encontrar dois números primos cuja soma dê o número par informado. Cuidado: para gerar tabelas, utilizei o módulo tabulate (instale-o em sua IDE antes de executar).

from tabulate import tabulate
from time import sleep as delay
from math import factorial
print("Conjectura de Goldbach")
numero = int(input('Informe o número par: '))
lista =[]
conta_primos = 0
conta_div = 0
recebe_soma = []
print("Calculando os primos...")
delay(1)
for i in range (1, numero+1):
    for d in range (1, i//2 + 1):
        if (i % d == 0):
            conta_div = conta_div + 1
        if (conta_div > 1):
            break
    conta_div = conta_div + 1
    if (conta_div == 2):
        lista.append(i)
        conta_primos = conta_primos + 1
    conta_div = 0
final = len(lista)
print("%d primos encontrados" %(final))
delay(1)
num_ad = factorial(final)/(factorial(final-2)*factorial(2)) + final
print("Realizando %d adições..." %(num_ad))
delay(1)
for i in range (len(lista)):
    for d in range (i,len(lista)):
        if lista[i] + lista[final-1] == numero:
            recebe_soma.append([lista[i],lista[final-1],lista[i]+lista[final-1]])
        final -= 1
    final = len(lista)
delay(1)
print("Cálculos terminados...\nPreparando tabela...")
delay(1)
print(tabulate(recebe_soma,headers = ["Primo 1","Primo 2","P1 + P2"], numalign = "center", stralign = "center", tablefmt = "grid"))

No vídeo abaixo, você pode ver como funciona:

Solicitando ao programa que encontre números primos cuja soma dê 66 (e depois 1024).

A Conjectura de Goldbach diz que qualquer número par maior que 2 pode ser escrito como a soma de dois primos. É um dos problemas matemáticos mais antigos não resolvidos.

bottom of page