不知道所需验证的“任意”偶数范围,所以这里为了通用采用概率方式做prime验证(基本可认为可任意大): def primality(n):
if n <= 102:
for a in range(2, n):
if pow(a, n - 1, n) != 1:
return False
else:
import random
for i in range(100):
a = random.randint(2, n - 1)
if pow(a, n - 1, n) != 1:
return False
return True
while True:
try:
A = int(input('Please input an even number:').strip())
if A=='':
break
elif A%2!=0:
print('Not even, please retry!')
continue
if A==4:
print('4 = 2 + 2')
continue
halfA,flag = int(A/2),False
# just need to check odd numbers, >=3
for S in range(3,halfA+1,2):
B = A - S
if primality(S) and primality(B):
flag = True
print('%d = %d + %d' %(A,S,B))
if not flag:
print('%d cannot be divided!' %A)
except:
break 会逐行打印出所有可能的结果(若仅统计数目,可自行参考修改) ——python 3.5