1.学习1: 埃拉托色尼筛选法(求一定范围内的质数)
2016-03-14 15:21
288 查看
前言:这是在刷leetcode第204题: Count Primes时hint提示的。
埃拉托色尼选筛法(the
Sieve of Eratosthenes)简称埃氏筛法,是古希腊数学家埃拉托色尼(Eratosthenes
274B.C.~194B.C.)提出的一种筛选法。 是针对自然数列中的自然数而实施的,用于求一定范围内的质数,它的容斥原理之完备性条件是p=H~。
(2)读取队列中当前最小的数2,然后把2的倍数删去
(3)读取队列中当前最小的数3,然后把3的倍数删去
(4)读取队列中当前最小的数5,然后把5的倍数 删去
(5)如上所述直到需求的范围内所有的数均删除或读取
注:此处的队列并非数据结构队列,如需保留运算结果,处于存储空间的充分利用以及大量删除操作的实施,建议采用链表的数据结构。
C++实现
埃拉托色尼选筛法(the
Sieve of Eratosthenes)简称埃氏筛法,是古希腊数学家埃拉托色尼(Eratosthenes
274B.C.~194B.C.)提出的一种筛选法。 是针对自然数列中的自然数而实施的,用于求一定范围内的质数,它的容斥原理之完备性条件是p=H~。
步骤
(1)先把1删除(现今数学界1既不是质数也不是合数)
(2)读取队列中当前最小的数2,然后把2的倍数删去(3)读取队列中当前最小的数3,然后把3的倍数删去
(4)读取队列中当前最小的数5,然后把5的倍数 删去
(5)如上所述直到需求的范围内所有的数均删除或读取
注:此处的队列并非数据结构队列,如需保留运算结果,处于存储空间的充分利用以及大量删除操作的实施,建议采用链表的数据结构。
C++实现
相关文章推荐
- 【C#】 关于属性
- 【问题解决】MYSQL中文显示'?'中文乱码问题
- Calendar日历类型
- android studio 签名,打包,混淆,多渠道打包
- js倒计时
- oracle 常用函数,不全后期补上。
- maven的优势
- Versioning with the Override and New Keywords (C# Programming Guide)
- shared_ptr
- 对照Java学习Swift--基本运算符
- iOS开发发觉好多的界面上移了解决方法
- jvm内存设置
- appium环境搭建步骤记录(三)-appium-client安装
- NWPU周赛题解
- Hadoop : MapReduce中的Shuffle和Sort分析
- Android Gson使用入门及GsonFormat插件的使用
- 《数据库系统:数据库与数据仓库导论|4615181》【摘要 书评 试读】- 京东图书
- [数据结构-划分树小结]
- iOS开发发觉好多的界面上移了解决方法
- C/C++中 malloc和new区别