什么是哥德巴赫猜想?
哥德巴赫猜想是世界近代三大数学难题之一。1742年,哥德巴赫给欧拉的信中提出了以下猜想:任一大于2的整数都可写成三个质数之和。但是哥德巴赫自己无法证明它,于是就写信请教赫赫有名的大数学家欧拉帮忙证明,然而一直到死,欧拉也无法证明。
下面用程序验证2000以内的不小于4的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对2000以内的正偶数成立)。
下面直接上代码:
########################
import math
# 判断是否为素数
def fun(n):
if n == 2:
return 1 # n是2,返回1
if n % 2 == 0:
return 0 # n是偶数,不是素数,返回0
i = 3
while i <= math.sqrt(n):
if n % i == 0:
return 0 # n是奇数,不是素数,返回0
i += 2
return 1 # n是除2以外的素数,返回1
# 验证哥德巴赫猜想
def guess(n):
ok = 0 # 进入循环前先置标志位
i = 2
while i <= (n // 2):
if fun(i):
if fun(n - i):
print("%d %d\n" % (i, n - i)) # i和n-i都是素数,则打印
ok = 1
if i != 2:
i += 1
if ok == 1:
break # 已打印出所需要的输出结果,跳出循环
i += 1
if __name__ == "__main__":
while True: # 循环输入
n = int(input())
guess(n) # 验证哥德巴赫猜想
########################
执行结果如下:
8
3 5
16
3 13
24
5 19
86
3 83
286
3 283
________________END______________