📅  最后修改于: 2023-12-03 15:23:39.273000             🧑  作者: Mango
埃拉托色尼筛法(也称埃氏筛法)是一种找到所有小于给定数字的质数的算法。该算法具有高效性和简单性,并且适用于较小的数字范围。
以下是一个使用Python编写的埃拉托色尼筛法的程序。程序首先创建了一个包含所有数字的列表,然后使用一个循环遍历列表中的每个数字。对于每个数字,程序将判断它是否为质数。如果是质数,则程序将其添加到一个新列表中,并将该数字的所有倍数从原始列表中删除。最终,程序返回新列表中的所有质数。
def eratosthenes(n):
"""
使用埃拉托色尼筛法找到小于给定数字的所有质数
"""
nums = list(range(2, n + 1))
primes = []
while nums:
p = nums[0]
primes.append(p)
nums = [x for x in nums if x % p != 0]
return primes
该程序可以通过调用函数来使用。例如,要找到小于50的所有质数,可以如下所示调用该函数:
result = eratosthenes(50)
print(result)
输出结果如下所示:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
该程序的时间复杂度为 O(n log log n),因此在测试面临的较小数字时具有较高的效率。