1.1简介:
埃拉托色尼筛选法是用来生成质数的经典计算机编程算法,一般用来衡量计算机的速度。

我们知道,质数是能被自己和1整除的整数。

2,3,5,7,11都是质数。

那么算法是如何实现质数的识别呢?

1.2我们可以简化理解为:
从2开始 (忽略0 1的影响)
2为质数所以,我们通过循环剔除 2的倍数的数
3为质数,通过循环剔除3的倍数的数
… 大浪淘沙,最后没有被剔除的数都是质数。

1.3伪代码:
1.输入一个上限n
2.定义一个n个容量的全真布尔运算数组bool_list
3.进入循环体:如果bool_list 为真
4.剔除他的倍数
5.令他的倍数为假。

1.4注意:
为什么我将bool_list 设置为n+1个元素呢?
因为我在下面遍历n个数的时候用到了range(start,end)函数
这个函数可以生成 start到end-1的数。
因此加一得到。
如果将bool_list 设置为n个元素则会出现如下错误:

遍历在第一次进行的时候就死掉了,
我们发现,i最大可以取到n+1,对于剔除合数的for 函数里面来说 bool_list[i] 当i取到n+1是一个空集 即 我没有bool_list[n+1]这一项。

不过这个无关痛痒,只要前后保持一致就可以啦!
大家也可以全改成n,然后输入的时候手动加一就好啦!

1.5代码改进:

优化python程序时,最重要的原则之一是:
从执行时间的角度来说,print 语句的开销很大。
所以,我们更希望将多个print改成单一输出操作。

结合我们的代码可知:
我们的打印是在找到那个质数便将他打印出来,我们是不是可以创建一个空列表,当有一个新的质数,我们就把他存在空列表中。最后只需打印空列表此时的列表即可。

在这里我们用到了 join 字符串方法;
join 用于将多个字符串合并为1个。

join的优点在于 他只加在元素之间,这样就不需要考虑是不是开头结尾会有无用的符号。
在我们的实例中,只是给相邻的质数加了一个空格。

[编程] 2 python 实现埃拉托色尼筛选法相关推荐

  1. python算法设计 - 埃拉托色尼筛选法

    python算法设计源码:https://github.com/MakerChen66/Python3Algorithm 版权声明:原创不易,本文禁止抄袭.转载,侵权必究! 目录 一.埃拉托色尼筛选法 ...

  2. python filter求素数-埃拉托色尼筛选法

    质数:只可以被两个数整除,1和该数本身: 埃拉托色尼筛选法说明; (1)先把1删除(现今数学界1既不是质数也不是合数) (2)读取队列中当前最小的数2,然后把2的倍数删去 (3)读取队列中当前最小的数 ...

  3. JavaScript实现sieveOfEratosthenes埃拉托色尼筛选法算法(附完整源码)

    JavaScript实现sieveOfEratosthenes埃拉托色尼筛选法算法(附完整源码) sieveOfEratosthenes.js完整源代码 sieveOfEratosthenes.js完 ...

  4. 埃拉托色尼筛选法(Eratosthenes Sieve)分析

    最近看<java核心技术>看到集合章节,在最后位集(BitSet)部分给出了一个示例程序,使用了埃拉托色尼筛选法(Eratosthenes Sieve)求自然数2~n范围的所有素数 代码如 ...

  5. 埃拉托色尼筛选法------筛选质数

    前戏:本篇介绍一种特定数据范围内统计该段数据内所有质数的高效算法,埃拉托色尼筛选法. 正文: 1.埃拉托色尼筛选法: 埃拉托色尼筛选法(the Sieve of Eratosthenes)简称埃氏筛法 ...

  6. c语言埃拉托色尼筛选法数组,埃拉托色尼筛选法 算法

    埃拉托色尼筛选法 埃拉托色尼选筛法(the Sieve of Eratosthenes)简称埃氏筛法,是古希腊数学家埃拉托色尼(Eratosthenes 274B.C.-194B.C.)提出的一种筛选 ...

  7. 埃拉托色尼筛选法 C++实现

    在公元前3世纪,古希腊天文学家埃拉托色尼发现了一种找出不大于n的所有自然数中的素数的算法,即埃拉托色尼筛选法. 具体筛选步骤: 这种算法首先需要按顺序写出2到n中所有的数. 然后把第一个元素画圈,表示 ...

  8. 埃拉托色尼筛选法计算素数个数

    埃拉托色尼筛选法计算素数个数 素数:指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. int main() {int MAXNUM = 1000; // 在这里以1000为例int n ...

  9. 素数处理-埃拉托色尼筛选法(埃式筛)

    素数处理-埃拉托色尼筛选法(埃式筛) 埃拉托色尼筛选法(The Sieve of Eratosthenes) 继欧拉筛之后,我今天补的一篇博客.名字太长了emm.简称就是埃式筛法. 埃筛只能解决1e7 ...

最新文章

  1. 【爬虫】-爬取食品检验结果
  2. 关于全角半角转换(转)
  3. Spring学习总结(31)——Spring Bean 生命周期总结
  4. Linux 下编译安装OpenCV【转】
  5. zip()和enumerate()用于for-in中遍历可迭代对象
  6. Linux组件封装(三)使用面向对象编程封装Thread
  7. 蚂蚁课堂:Consul搭建
  8. 工业智能网关,数据采集网关
  9. WPS表格插入制作折线图表教程
  10. java前端vml_在Web中使用JavaScript和VML实现WebGIS中的测距
  11. Cocoa-Cocoa框架
  12. pthread_cond_broadcast pthread_cond_signal
  13. 燃起图与燃尽图,故事地图和产品线路图分析
  14. 【导数术】14.凹凸反转
  15. 中国超级计算机神威 上市公司,中国拟研发百亿亿级超级计算机 秒杀目前最快神威...
  16. rem、em、px、rpx、vw、vh、%等
  17. pod的requests、limits解读、LimitRange资源配额、Qos服务质量等级、资源配额管理 Resource Quotas
  18. Java开源生鲜电商平台-Java分布式以及负载均衡架构与设计详解(源码可下载)
  19. 旅行商问题(travelling salesman problem, TSP) 解题报告
  20. 【Python网络蜘蛛 · 3】:post请求、模拟金山翻译(附源代码)

热门文章

  1. java反射例子_java反射简单例子
  2. 【饥荒】关于随机地图生成的方式
  3. 课后练习--制作美联英语在线VIP页面——学伴
  4. CabloyJS一站式助力微信、企业微信、钉钉开发 - 钉钉篇
  5. js 获取字典的key_JS-字典
  6. excel使用教程_数据分析Excel必备技能:数据透视表使用教程
  7. scp cp
  8. 如何在uni-app中引入iconfont图标
  9. HTML--图片的插入
  10. 算法的时间与空间复杂度(一看就懂)