python求素数

  • 前言
  • 方法一
    • 1、代码
    • 2、输出结果
  • 方法二
    • 1、代码
    • 2、输出结果

前言

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数(该解释来自百度百科)。
如果要找100以内的素数,我们可以寻找100以内的非素数,即证明一个数除了1和它本身以外还可以被其他自然数整除,不能被证明的数就是素数。


方法一

1、代码

代码如下:

list1 = [1, 2]
for i in range(2, 101):for j in range(2, i):if i % j == 0:breakelif j == i-1:list1.append(i)
print(list1)

2、输出结果

[1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]Process finished with exit code 0

我们只需要让2到n-1中间所有的数除n,只要结果为0循环提前结束,如果n-1也验证过依然没有提前结束循环,此时这个数为素数,计入列表中。


方法二

当我们遇见较大的数值,比如100000时,使用方法一的效率显然会很慢,这时候就需要对素数的特性有一个更深的了解,以此来优化算法

1、代码

list1 = [1, 2]
for i in range(2, 101):for j in list1[1:]:if i % j == 0:breakelif i < j*j:list1.append(i)break
print(list1)

2、输出结果

[1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]Process finished with exit code 0

如果有一个非素数的可以整除 n,那么必然有一个素数可以整除 n,测试 n 是否为素数,只要证明 n 不会被小于 n 的素数整除即可。 又因为当素数 i 的平方大于 n 时,大于 i 的素数必须要与一个小于本身的数相乘才有可能恰好等于n,然而,如果有这种情况存在,那么 n 必然会在测试到数值 i 之前被证实为非素数。所以需要测试的素数到有一个素数平方大于 n 时就可以被证实为素数。


新手上路,制作不易,望点赞支持,十分感谢

用python求素数的方法,以及一种算法优化相关推荐

  1. Python求绝对值的方法有几种?

    Python中求绝对值的方法有很多种,但比较常用的主要为这三种:1.条件判断方法;2.内置函数方法;3.内置模块方法,接下来通过这篇文章为大家详细介绍一下这三种方法. Python求绝对值的方法: 1 ...

  2. python判断素数的函数_如何用python求素数

    如何用python求100以内的素数? 质数(primenumber)又称素数,有无限个.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,如:2.3.5.7.11.13.1 ...

  3. python求素数算法_Python程序最多可计算n个质数(使用不同算法)

    python求素数算法 There are various methods through which we can calculate prime numbers upto n. 我们可以通过多种方 ...

  4. python求素数的函数_如何用python求素数

    如何用python求100以内的素数? 质数(primenumber)又称素数,有无限个.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,如:2.3.5.7.11.13.1 ...

  5. python求素数积_用Python求素数的快速算法源码示例

    本篇文章为Python算法相关,用Python求素数的快速算法源码示例.算法在Python的学习中算是一个要点,能研究明白算法的同学都可以算的上是Python的大牛了. 首先简单的来说下什么是素数:质 ...

  6. 筛选法求素数一般方法求素数判断一个数是否是素数

                                      筛选法求素数&一般方法求素数&判断一个数是否是素数 1.判断一个数是否是素数 #include<stdio.h ...

  7. python math.abs,python求绝对值的方法有哪些

    python求绝对值的方法:1.条件判断方法:2.内置函数[abs()]方法:3.内置模块[math.fabs]方法:其中[abs()]是一个内置函数,而[fabs()]在math模块中定义的.uC3 ...

  8. c语言求最小公倍数和最大公约数三种算法

    C语言求最小公倍数和最大公约数三种算法(经典) 求最小公倍数算法: 最小公倍数=两整数的乘积÷最大公约数 求最大公约数算法: (1)辗转相除法 有两整数a和b: ① a%b得余数c ② 若c=0,则b ...

  9. C语言求最小公倍数和最大公约数三种算法(经典)

    C语言求最小公倍数和最大公约数三种算法(经典) 最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为 ...

最新文章

  1. Exchange Server 2010安装
  2. 服务提供者框架(Service Provider Framework)
  3. python学习之老男孩python全栈第九期_day002作业
  4. 我的Ubuntu9.10安装与配置
  5. 快速云原生化,从数据中心到云原生的迁移实践
  6. mysql截取最后一个斜杠_在MySQL中最后一个斜杠之后选择文本?
  7. pycharm是不是python编程_使用PyCharm进行python开发的简介
  8. 做po_requisitions_interface_all接口开发问题
  9. 哈夫曼树(利用python实现)
  10. 2019.03.25 bzoj4572: [Scoi2016]围棋(轮廓线dp)
  11. hdu 1251(字典树)
  12. IIS反向代理/Rewrite/https卸载配置
  13. 软件工程~~判定树和判定表
  14. B 站视频下载器(BV号、dash、音视频分离)
  15. PCB通孔类焊盘封装
  16. Oblog 2.52导出日志最新漏洞
  17. 【Unity2D入门教程】简单制作战机弹幕射击游戏⑤C#编写 背景滚动移动以及增加粒子特效
  18. 使用SSH服务管理远程主机(RHEL8)
  19. 同步器Synchronizer
  20. 2021牛客多校#4 E-Tree Xor

热门文章

  1. html圆角矩形的渐变色,canvas圆角矩形 PS制作渐变圆角矩形: 方法一:
  2. php 绘制圆角矩形,快速绘制圆角矩形的三种方法 - 行业动态 - 济南新视觉实训基地-平面UI设计PS培训,室内设计,web前端,影视3D动画后期制作培训...
  3. 微型计算机原理期末试题,微机原理期末考试试题及答案.doc
  4. flash骨骼动画资料
  5. 爱奇艺:空有奈飞梦,没有奈飞命
  6. Python学习小组课程P6-Python办公(3)邮件与钉钉消息通知
  7. C语言中bool类型变量的输出格式
  8. 英雄联盟服务器不稳定领取皮肤,由于英雄联盟服务器问题 将免费赠送玩家皮肤当做赔偿...
  9. angular5 用 !! 进行判断的原理
  10. 2023年人力资源管理师报名和培训费用是多少