自学Python:验证哥德巴赫猜想

什么是哥德巴赫猜想?

哥德巴赫猜想是世界近代三大数学难题之一。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______________

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容