该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
# 编写一个函数验证哥德巴赫的猜想:任何一个充分大的偶数(大于等于6)总可以表示成两个素数之和
def caixiang():
# 获取要验证的范围
a = int(input("请输入范围:"))
for x in range(2, a + 1):
# 获取偶数列表
if x % 2 == 0:
oushu.append(x)
# 获取素数列表
for y in range(2, x):
if x % y == 0:
break
else:
sushu.append(x)
print("偶数列表=%s", oushu)
print("素数列表=%s", sushu)
yanzheng()
def yanzheng():
print("开始验证:")
for x in oushu: # 遍历偶数列表
i = False # i = False 表示没有找到符合要求的数
for a in sushu: # 遍历素数列表获取素数1
j = 0
for b in sushu[sushu.index(a):]: # 遍历素数列表获取素数2
if x == a + b:
i = True # 表示找到了符合要求的数
j = 1 # j = 1 表示已找到某个 a 和 b 之和等于x
print("找到 %d + %d = %d" % (a, b, x))
break
if j == 1:
break
if not i: # 如果为真则表示以上循环中没有找到符合要求的数
print("没有找到符合要求的数,猜想被推翻")
break
else:
print("验证完成,猜想没有被推翻")
# 创建素数和偶数列表,素数列表默认有1
sushu = [1]
oushu = []
caixiang()