埃拉托斯特尼筛法原理(埃氏筛法):用于筛选质数
- 什么是质数:
质数(prime number)又称素数,质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
2.埃氏筛法原理
将列表中筛选剩下的数的所有的倍数删除,最后留下的一定是质数。
原始数据 | 第一次筛选 | 第二次筛选 | 第三次筛选 |
2 | 2 | 2 | 2 |
3 | 3 | 3 | 3 |
4 |
|
|
|
5 | 5 | 5 | 5 |
6 |
|
|
|
7 | 7 | 7 | 7 |
8 |
|
|
|
9 | 9 |
|
|
10 |
|
|
|
11 | 11 | 11 | 11 |
12 |
|
|
|
13 | 13 | 13 | 13 |
14 |
|
|
|
15 | 15 |
|
|
16 |
|
|
|
17 | 17 | 17 | 17 |
18 |
|
|
|
19 | 19 | 19 | 19 |
20 |
|
|
|
21 | 21 |
|
|
22 |
|
|
|
23 | 23 | 23 | 23 |
24 |
|
|
|
25 | 25 | 25 |
|
26 |
|
|
|
27 | 27 |
|
|
28 |
|
|
|
29 | 29 | 29 | 29 |
30 |
|
|
|
第一次筛选:将2的倍数全部删除
第二次筛选:将3的倍数全部删除
第三次删选:因为4已经被删除(此时4的倍数也已经被全部删除了),所以此次删除5的倍数,以此类推。最后剩下的全部都是质数。
优势:若要求到N的所有质数,这种筛选方法相较于从2遍历到N/2依次进行取余运算效率要高很多。
3.其他求质数的方法:
目前有埃氏筛法、欧氏(欧拉)筛法【可以拓展到黎曼猜想】、厄拉多塞筛法。
PS:这几种筛法思想大致想同。