哥德巴赫猜想python实现

哥德巴赫猜想(Goldbach's conjecture)是数论中存在最久的未解问题之一。这个猜想最早出现在1742年普鲁士数学家克里斯蒂安·哥德巴赫与瑞士数学家莱昂哈德·欧拉的通信中。用现代的数学语言,哥德巴赫猜想可以陈述为:

“ 任一大于2的偶数,都可表示成两个素数之和。 ”

这个猜想与当时欧洲数论学家讨论的整数分拆问题有一定联系。整数分拆问题是一类讨论“是否能将整数分拆为某些拥有特定性质的数的和”的问题,比如能否将所有整数都分拆为若干个完全平方数之和,或者若干个完全立方数的和等。而将一个给定的偶数分拆成两个素数之和,则被称之为此数的哥德巴赫分拆。例如,

4 = 2 + 2
6 = 3 + 3
8 = 3 + 5
10 = 3 + 7 = 5 + 5
12 = 5 + 7
14 = 3 + 11 = 7 + 7
…

换句话说,哥德巴赫猜想主张每个大于等于4的偶数都是哥德巴赫数——可表示成两个素数之和的数[1]。哥德巴赫猜想也是二十世纪初希尔伯特第八问题中的一个子问题。

import math


def prime(n):
    # 只需判断[2 .. sqrt(n)]即可
    for i in range(2, int(math.sqrt(n) + 1)):
        if n % i == 0:
            return False

    return True


n = int(input("请输入一个偶数:"))
primes = [i for i in range(2, n) if prime(i)]
for i in primes:
    for j in primes:
        if i < j and i + j == n:
            print(f"{n} = {i} + {j}")

运行结果:

请输入一个偶数:100000        
100000 = 11 + 99989
100000 = 29 + 99971
100000 = 71 + 99929
100000 = 167 + 99833
...
posted @   卓能文  阅读(538)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示