📜  python - 素数生成器 - Python (1)

📅  最后修改于: 2023-12-03 14:45:54.876000             🧑  作者: Mango

Python - 素数生成器

本文将介绍一个使用 Python 编写的素数生成器。素数是只能被 1 和其本身整除的正整数。素数生成器是一个能够生成连续素数的工具。

素数生成器的实现

下面是一个简单的素数生成器的实现:

def prime_generator():
    yield 2  # 第一个素数是 2
    primes = [2]  # 存储已生成的素数的列表
    current_number = 3

    while True:
        is_prime = True

        # 检查当前数是否为素数
        for prime in primes:
            if prime * prime > current_number:
                break
            if current_number % prime == 0:
                is_prime = False
                break

        if is_prime:
            yield current_number
            primes.append(current_number)

        current_number += 2  # 只检查奇数,偶数不可能是素数

这个生成器函数 prime_generator 使用 yield 语句返回生成的素数,而不是将它们存储在一个列表中。这种方式在生成大量素数时更高效。算法的核心原理是利用已生成的素数来检查当前数是否为素数。

使用素数生成器

要使用素数生成器生成素数,只需调用该生成器函数并迭代其结果即可。

# 生成前 10 个素数
n = 10
primes = []
prime_gen = prime_generator()

while n > 0:
    prime = next(prime_gen)
    primes.append(prime)
    n -= 1

print(primes)

上述代码将生成前 10 个素数并打印出来。

总结

本文介绍了一个用 Python 编写的素数生成器。该生成器使用了一种高效的算法来生成连续的素数。我们还给出了一个简单的示例来演示如何使用素数生成器。

如果你对生成更多素数感兴趣,可以继续迭代素数生成器并将结果存储在一个列表中。同样的方法也可以用于生成任意多个素数。

注意:代码片段中使用到的函数/变量名称请与你的实际代码保持一致。