ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第37期-哥德巴赫猜想——偶数

2022-01-06 18:04:22  阅读:254  来源: 互联网

标签:输出 质数 37 偶数 素数 哥德巴赫猜想 print


1 问题描述

将6-99之间的偶数都表示成两个素数之和,输出时每行输出5组。

1742年,哥德巴赫给欧拉的信中提出了以下猜想:任一大于2的整数都可写成三个质数之和。但是哥德巴赫自己无法证明它,于是就写信请教赫赫有名的大数学家欧拉帮忙证明,然而一直到死,欧拉也无法证明。
因现今数学界已经不使用“1也是素数”这个约定,哥德巴赫猜想的现代陈述为:任一大于5的整数都可写成两个质数之和。(n>5:当n为偶数,n=2+(n-2),n-2也是偶数,可以分解为两个质数的和;当n为奇数,n=3+(n-3),n-3也是偶数,可以分解为两个质数的和)。欧拉在回信中也提出另一等价版本,即任一大于2的偶数都可写成两个质数之和。把命题"任一充分大的偶数都可以表示成为一个素因子个数不超过a的个数与另一个素因子不超过b的个数之和"记作"a+b"。1966年陈景润证明了"1+2"成立,即"任一充分大的偶数都可以表示成二个素数的和,或是一个素数和一个半素数的和"。
今日常见的猜想陈述为欧拉的版本,即任一大于2的偶数都可写成两个素数之和,亦称为“强哥德巴赫猜想”或“关于偶数的哥德巴赫猜想”。
从关于偶数的哥德巴赫猜想,可推出:任何一个大于7的奇数都能被表示成三个奇质数的和。后者称为“弱哥德巴赫猜想”或“关于奇数的哥德巴赫猜想”。若关于偶数的哥德巴赫猜想是对的,则关于奇数的哥德巴赫猜想也会是对的。2013年5月,巴黎高等师范学院研究员哈洛德·贺欧夫各特发表了两篇论文,宣布彻底证明了弱哥德巴赫猜想。

2 解题思路

  • 输出时每行输出5组,可以记录输出次数后换行输出
  • 遍历6-99中的所有数,for循环
  • 判断是否是素数的方法已经出现过很多次了

3 解题方法

a = [2]
for i in range(3, 100):
    b = 0
    for j in range(2, i):
        if i % j != 0:
            b += 1
            if b == i - 2:
                a.append(i)
m = 0
for i in range(6, 99):
    if i % 2 == 0:
        for j in range(2, i):
            if j in a:
                if i - j in a:
                    m += 1
                    if m == 5:
                        print(f'{i}={j}+{i - j}')
                        m = 0
                    else:
                        print(f'{i}={j}+{i - j}', end=' ')
                    break
View Code

第1行: 创建列表a用于存放素数
第2行: 使用for循环遍历3-100的整数,由于只需计算99以内的偶数,所以最大值选择了100,用以判断以及存放100以内的所有素数
第3-7行: 计算是否从2到数本身都不是该数的因子,若是,你们该数就是素数
第8行: 将判断结果是素数的数加入到列表a中
第9行: m=0用于记录每行输出的个数
第10行: 遍历6-99中的所有整数
第11行: 判断整数是否是偶数
第12-14行: for循环遍历小于i的整数,判断该数以及该数与i的差是否都在a中(都在列表a中代表他们都是素数)
第15行: 若满足上述条件,则给m值加一用以判断一行输出了几个
第16-18行: 如果m等于5,则正常输出便可(正常输出会自动换行),并将m重新等于0
第19-20行: 如果m不等于5,则输出并以空格为结尾,这样下次输出就会和本次在同一行了
第21行: 输出完毕后结束循环

print()函数
print() 方法用于打印输出,最常见的一个函数。
语法:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
这里主要介绍end
参数说明:
end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。

代码运行结果为:
image.png

标签:输出,质数,37,偶数,素数,哥德巴赫猜想,print
来源: https://www.cnblogs.com/lg03/p/15772200.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有