ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python:用函数思想完成哥德巴赫猜想

2021-06-05 09:02:45  阅读:201  来源: 互联网

标签:10000 函数 Python 素数 哥德巴赫猜想 sushu return True 猜想


哥德巴赫猜想:大于8的偶数之和都可以被两个素数相加

范围 8 - 10000

思路:

 

首先不要去管需要什么什么东西实现,所以我们如果知道如何去完成:
大于8的偶数之和都可以被两个素数相加:
# 可以假设 这个猜想是正确的。
# 设一个变量是true
flag = True
# 确定范围 8 - 10000
for fanwei in range(8,10000,2):
# 如果猜想错误如何?
	if not caixiang(fanwei):
        flag = False
# 正确又如何错误又如何?
if flag = True:
	 print('猜想正确')
else:
    print('猜想错误')        
之后我们去写一个函数 来确定这个猜想是否正确,正确就返回 True
def caixiang(n):
# 这里需要所有的素数 8 - 10000的
# 这里的目的是为了拆分出两素数参数n 和 循环名 m 两个变量
    for m in range(1,n//2+1):
        if sushu(m) and sushu(n-m):
            return True
    return False
最后发现还要判断是否是素数:
def sushu(n):
    su = 0
    for i in range(1,n-1):
        c = n%i
        if c == 0:
            su += 1
    return True
这样这个哥德巴赫猜想就完成了。

完整代码:

# 功能:判断是否是一个素数
# def sushu(n):
#     i = 1  # 需要整从1 开始
#     su = 0  # 被整除的次数 如果等于二就是素数
#     while i <= n:  # 完成从 a/1 到 a/a 后 结束
#         c = n % i  # c为余数
#         if c == 0:  # 判断余数是否是0
#             su += 1  # 是的话记一个数
#         i += 1  # 开始 a/2
#     return True
# 以上判断素数改成for 循环
def sushu(n):
    su = 0
    for i in range(1,n-1):
        c = n%i
        if c == 0:
            su += 1
    return True


# 判断猜想:需要所有的素数与fanwei 来判断 两两相加是否等于那个数
def caixiang(n):
# 这里需要所有的素数 8 - 10000的
# 这里的目的是为了拆分出两素数参数n 和 循环名 m 两个变量
    for m in range(1,n//2+1):
        if sushu(m) and sushu(n-m):
            return True
    return False

# 哥德巴赫猜想:大于8的偶数之和都可以被两个素数相加
# 范围  8 - 10000 , 由于是偶数步长为2
flag = True
for fanwei in range(8,10000,2):
# 如果猜想错误返回false 所以要设置变量 flagn
    if not caixiang(fanwei):
        flag = False

if flag == True:
    print('猜想正确')
else:
    print('猜想错误')

 

标签:10000,函数,Python,素数,哥德巴赫猜想,sushu,return,True,猜想
来源: https://www.cnblogs.com/dpdd/p/14851936.html

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

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

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

ICode9版权所有