埃拉托色尼筛法:寻找素数的高效算法
埃拉托色尼筛法(Sieve of Eratosthenes)是一种高效的算法,用于查找一定范围内的所有素数。这个算法的基本思想是从小到大遍历所有自然数,并将其倍数标记为合数,最终剩下的未被标记的数即为素数。本文将详细介绍埃拉托色尼筛法的实现,并提供相应的Python源代码。
算法实现步骤如下:
-
初始化一个布尔数组is_prime,数组长度为n+1(n为待查找的最大数),并将所有元素初始化为True。is_prime[i]表示数值i是否为素数。
-
从2开始遍历数组,若is_prime[i]为True,则将i的倍数(不包括i本身)标记为False,因为它们不是素数。
-
遍历完数组后,所有未被标记为False的元素即为素数。
下面是使用Python实现的埃拉托色尼筛法的源代码:
def sieve_of_eratosthenes(n):
is_prime =