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

Posted 漫不经心、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:用函数思想完成哥德巴赫猜想相关的知识,希望对你有一定的参考价值。

哥德巴赫猜想:大于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(\'猜想错误\')

 

以上是关于Python:用函数思想完成哥德巴赫猜想的主要内容,如果未能解决你的问题,请参考以下文章

python编写一函数用于判断输入的数是不是是素数。验证哥德巴赫猜想:一个不小7的偶数均可以表示为两个素数?

在c#用控制语句完成哥德巴赫猜想(一个大于二的偶数一定是两个质数之和)

用python验证哥德巴赫猜想

python 关于CNN的一些思考-2022

906 AlvinZH的奇幻猜想----整数乘积(O)

ZZNUOJ_C语言1093:验证哥德巴赫猜想(函数专题)(完整代码)