Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Numerical solution to Goldbach’s conjecture.
- Author: Helton Carlos de Souza <[email protected]>
- The Goldbach’s Conjecture:
- 1) Every even number greater than 2 is the sum of two primes
- 2) Every odd number greater than 5 is the sum of three primes.
- """
- def divisors(n):
- return [x for x in range(1, n + 1) if n % x == 0]
- def is_prime(n):
- return divisors(n) == [1, n]
- def prime_range(n):
- return [x for x in range(2, n + 1) if is_prime(x)]
- def goldbach_conjecture(n):
- if n % 2 == 0:
- if n > 2:
- return [(x, y) for x in prime_range(n) for y in prime_range(n) if x + y == n and x <= y]
- else:
- raise ValueError('Even numbers must be greater than 2')
- else:
- if n > 5:
- return [(x, y, z) for x in prime_range(n) for y in prime_range(n) for z in prime_range(n) if x + y + z == n and x <= y <= z]
- else:
- raise ValueError('Odd numbers must be greater than 5')
- def show_goldbach_conjecture(n):
- tuples_list = goldbach_conjecture(n)
- print(str(n), end='')
- for t in tuples_list:
- print(" = ", end='')
- for index, number in enumerate(t):
- if index == len(t) - 1:
- print(str(number), end='')
- else:
- print(str(number) + " + ", end='')
- print()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement