Part of the series

Several example codes

~3 min read • Updated Sep 20, 2025

Program Overview

According to Goldbach's conjecture, every even number greater than 6 can be expressed as the sum of two prime numbers smaller than itself.
This Python program:
- Reads multiple even numbers greater than 6 from the user
- Finds two prime numbers whose sum equals each input number
- Continues running until the user chooses to exit


Program Tasks:

  • prim(n): Returns a list of all prime numbers less than n
  • find_two_numbers(n, primes): Finds two primes from the list whose sum equals n

Python Code:


def prim(n):
    primes = []
    for num in range(2, n):
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                break
        else:
            primes.append(num)
    return primes

def find_two_numbers(n, primes):
    for i in primes:
        if (n - i) in primes:
            return i, n - i
    return None, None

# Program loop
while True:
    num = int(input("Enter an even number greater than 6 (0 to exit): "))
    if num == 0:
        print("Exiting program.")
        break
    if num <= 6 or num % 2 != 0:
        print("Input must be an even number greater than 6.")
        continue

    primes = prim(num)
    a, b = find_two_numbers(num, primes)
    if a and b:
        print(f"{num} = {a} + {b}")
    else:
        print("No prime pair found for this number.")

Sample Output:


Enter an even number greater than 6 (0 to exit): 30  
30 = 7 + 23  

Enter an even number greater than 6 (0 to exit): 42  
42 = 5 + 37  

Enter an even number greater than 6 (0 to exit): 0  
Exiting program.

Explanation:

- The prim(n) function uses trial division to find all primes less than n
- The find_two_numbers(n, primes) function searches for a pair of primes that sum to n
- The program runs in a loop until the user enters 0 to exit


Written & researched by Dr. Shahin Siami