首先不要去管需要什么什么东西实现,所以我们如果知道如何去完成:大于8的偶数之和都可以被两个素数相加:
# 可以假设 这个猜想是正确的。# 设一个变量是trueflag = True# 确定范围 8 - 10000for 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 , 由于是偶数步长为2flag = Truefor fanwei in range(8,10000,2):# 如果猜想错误返回false 所以要设置变量 flagn if not caixiang(fanwei): flag = Falseif flag == True: print('猜想正确')else: print('猜想错误')
总结
以上是内存溢出为你收集整理的Python:用函数思想完成哥德巴赫猜想全部内容,希望文章能够帮你解决Python:用函数思想完成哥德巴赫猜想所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)