Python用函数思想完成哥德巴赫猜想代码分析

作者:漫不经心 时间:2022-05-05 11:42:06 

哥德巴赫猜想:大于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

这样这个哥德巴赫猜想就完成了。

思路扩展:

思路:

可以定义两个函数,一个判断是否为素数,一个分解。利用前面的两个函数生成n范围内的素数列表。如果两层for循环中的两个迭代变量之和等于参数n,就将这两个变量加入列表中,循环完所有的情况后返回列表,并打印输出。

参考代码:


import  math
def isprime(n): #判断素数
   if n == 1:
       return False
   elif n == 2:
       return True
   else:
       for i in range(2,int(math.sqrt(n)+1)):
           if n%i == 0:
               return False
       return True

def thonsand(n) : #生成若干个素数,返回素数list
   a = []
   for i in range(1,n+1):
       if isprime(i):
           a.append(i)
   return a
"""利用前面的两个函数生成n范围内的素数列表
两层for循环,两个迭代变量之和如果等于参数n就加入列表中
循环完所有的情况后返回列表,并打印输出。
"""
def gdbh(n):
   a =[]
   ls = thonsand(n)
   for i in ls:
       for j in ls:
           if n == i+j:
               a.append(i)
               a.append(j)
   return a

ls2 = gdbh(12)
ls3 = gdbh(152)
print(ls2)
print(ls3)

两个测试数据 12,152

输出如下;

[5, 7, 7, 5]

[3, 149, 13, 139, 43, 109, 73, 79, 79, 73, 109, 43, 139, 13, 149, 3]

来源:https://www.cnblogs.com/dpdd/p/14851936.html

标签:Python,哥德巴赫猜想
0
投稿

猜你喜欢

  • python+matplotlib绘制简单的海豚(顶点和节点的操作)

    2023-11-14 11:10:27
  • 深入浅析Python科学计算库Scipy及安装步骤

    2022-06-29 12:11:30
  • Python基于纹理背景和聚类算法实现图像分割详解

    2023-11-15 20:05:46
  • python+opencv实现论文插图局部放大并拼接效果

    2023-12-07 17:29:12
  • Python实现矩阵加法和乘法的方法分析

    2023-07-30 09:39:06
  • python实现Zabbix-API监控

    2022-04-23 17:41:00
  • 网页新窗口打开好不好,数据说话

    2008-05-31 17:01:00
  • Python实现的大数据分析操作系统日志功能示例

    2022-07-31 00:40:34
  • python高斯分布概率密度函数的使用详解

    2023-08-18 15:07:24
  • tensorflow使用range_input_producer多线程读取数据实例

    2022-10-19 16:43:21
  • Python中Collection的使用小技巧

    2022-04-14 01:42:57
  • Tensorflow获取张量Tensor的具体维数实例

    2021-12-24 20:25:10
  • 深入探讨opencv图像矫正算法实战

    2022-06-03 16:20:39
  • JavaScript防抖与节流超详细全面讲解

    2023-09-22 07:05:13
  • 为你的有序列表添加个性样式

    2009-02-23 13:12:00
  • 详解利用python+opencv识别图片中的圆形(霍夫变换)

    2023-12-07 18:17:50
  • python将字母转化为数字实例方法

    2021-12-04 03:40:17
  • Python如何安装第三方模块

    2023-08-01 12:50:07
  • Python中捕获键盘的方式详解

    2021-06-14 15:23:41
  • Mysql远程访问的开启

    2009-12-17 12:27:00
  • asp之家 网络编程 m.aspxhome.com