埃拉托斯特尼筛法

2024 年 8 月 29 日 | 阅读 3 分钟

引言

埃拉托斯特尼筛法是一种用于查找给定范围内所有素数的算法。它由希腊天文学家埃拉托斯特尼发明。 该算法非常简单,可以计算素数。 首先,我们写出2到n之间的所有数字。 我们将2的所有倍数标记为合数(因为2是最小的素数),然后标记3的所有倍数,此过程一直运行到n。

埃拉托斯特尼筛法的算法

示例

找到小于25的所有素数。

步骤:1 写出2到25之间的所有素数。

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

步骤:2 根据该算法,我们将2的所有倍数标记为合数(因为2是最小的素数和列表中的第一个数字)

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

步骤:3 2之后的下一个数字是3,我们标记3的所有倍数

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

步骤:4 3之后的列表中的下一个数字是5,该数字尚未被划掉; 我们标记5的所有倍数

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

步骤:5 5之后的列表中的下一个数字是7,该数字尚未被划掉; 我们标记7的所有倍数

2 34 56 78 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

步骤:6 此过程将运行到n。

2 3 5 7 11 13 17 19 23

埃拉托斯特尼筛法的优点

  1. 它是一种非常有效的筛选素数的算法。
  2. 它的实现成本很低。

程序

埃拉托斯特尼筛法的C++语言

输出

Enter the number
10
Prime numbers:
2 3 5 7

Java程序

输出

Enter the number
25
List of prime numbers upto given number are :
2 
3 
5 
7 
11 
13 
17 
19 
23

下一个主题维吉尼亚密码