前言
任意大于2的偶数都是两个质数的和,对于101810^{18}1018以内所有数字
书里提的
对于计算机科学家来说,证明程序和系统的正确性是最重要的事情之一,
- 即程序或系统是否确实按照预期运行。
python代码实现
python
def sieve_of_eratosthenes(limit):
sieve = [True] * (limit + 1)
sieve[0] = sieve[1] = False
for num in range(2, int(limit ** 0.5) + 1):
if sieve[num]:
sieve[num*num : limit+1 : num] = [False] * len(sieve[num*num : limit+1 : num])
primes = [i for i, is_prime in enumerate(sieve) if is_prime]
return primes
def goldbach_conjecture(even_number, primes):
for prime in primes:
if prime > even_number // 2:
break
if (even_number - prime) in primes_set:
return (prime, even_number - prime)
return None
# 示例使用
limit = 10000
primes = sieve_of_eratosthenes(limit)
primes_set = set(primes)
even_number = 56 # 可以替换为任何大于2的偶数
result = goldbach_conjecture(even_number, primes_set)
if result:
print(f"{even_number} = {result[0]} + {result[1]}")
else:
print(f"No primes found for {even_number}")