Hace algunos años en el cole, junto con nuestro profe de matemáticas, leímos un libro titulado: El tío Petros y la conjetura de Goldbach, me causo gran interés y curiosidad en ese momento saber más acerca de esta hipótesis matemática y ahora que he aprendido Python he realizado una simulación de dicha conjetura.
La conjetura de Goldbach es una famosa hipótesis matemática propuesta por el matemático prusiano Christian Goldbach en 1742. Afirma lo siguiente: “Todo número par mayor que 2 puede expresarse como la suma de dos números primos”.
En otras palabras, según la conjetura de Goldbach, cualquier número par mayor que 2 se puede descomponer en la suma de dos números primos. Por ejemplo, el número 4 se puede expresar como 2 + 2, donde tanto 2 como 2 son números primos. Otro ejemplo es el número 10, que se puede expresar como 3 + 7, ya que tanto 3 como 7 son números primos.
A pesar de su simplicidad aparente, la conjetura de Goldbach ha sido objeto de interés y estudio durante muchos años. Aunque se ha comprobado exhaustivamente para números pares extremadamente grandes, aún no ha sido demostrada matemáticamente para todos los números pares. Por lo tanto, sigue siendo una conjetura sin resolver en el campo de la teoría de números.
'''
---- CONJETURA DE GOLDBACH ----
Todo número par mayor que 2 se puede expresar como suma de dos números primos.
Para el número 14 tendríamos: 3 y 11, 7 y 7
(1 y 13 no valdrian, ya que el uno no es considerado un primo)
Hacer un programa que muestre todas las parejas de primos en las quese puede
expresar un número par mayor que 2.
'''# funciónque me permite saber si un número es primo o no
defes_primo(n):
ifn < 2:
returnFalse
for i inrange(2,n): # se excluye el 1 y el mismo numero
ifn % i == 0:
returnFalse
returnTrue
# uniendo las parejas
num = int(input("Número par mayor que 2: "))
if num % 2 == 0and num > 2: #condición para verificar que el numero sea par y mayor que 2
encontrado = Falsefor a inrange (2, num):
if es_primo(a):
#se toma num(14) y se le resta el primer numero primo a(3) y si el resultado b(11) es un numero primo, seforma una pareja (a,b) y asi hasta terminar el ciclo.
b = num - a
if es_primo(b):
encontrado = Trueif a <= b: #condición para evitar quese repitan las parejas
print("Primos",a,b) #mostrar en pantalla las parejas
ifnot encontrado:
print("No se ha encontrado ninguna pareja")
else:
print ("No es un numero valido")
Aquí puedes correr el programa: conjetura_goldbach.py
En este enlace encontrarás más ejercicios de lógica resueltos con Python: Python Ejercicios
Finalmente, te dejo mi web: jimcostdev.com