📜  埃拉托色尼筛法的Python程序(1)

📅  最后修改于: 2023-12-03 15:23:39.273000             🧑  作者: Mango

埃拉托色尼筛法的Python程序

埃拉托色尼筛法(也称埃氏筛法)是一种找到所有小于给定数字的质数的算法。该算法具有高效性和简单性,并且适用于较小的数字范围。

以下是一个使用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),因此在测试面临的较小数字时具有较高的效率。