任何大于2的偶数都可以写成两个素数之和,任何大于7的奇数都可以写成3个奇素数之和。
即:
任何大于2的偶数=素数+素数
任何大于7的奇数=奇素数+奇素数+奇素数
ps:素数=质数=在正整数范围内,只能被1和自身整除的数。
def is_prime(x): #检测一个数是否是素数
for i in range(2,x):
if x%i==0:
return False
return True
def goldbach(x):
if x%2==0 and x>2: #任何大于2的偶数=素数+素数
for i in range(2,x):
if is_prime(i) and is_prime(x-i):
return(f'{x}={i}+{x-i}')
elif x%2==1 and x>7: #任何大于7的奇数=奇素数+奇素数+奇素数
for i in range(3,x,2):
for j in range(3,x-i,2):
if is_prime(i) and is_prime(j) and is_prime(x-i-j):
return(f'{x}={i}+{j}+{x-i-j}')
else:
return('输入错误,请输入大于2的偶数,或者大于7 的奇数')
print(goldbach(36))
print(goldbach(4))
print(goldbach(361))
print(goldbach(9))