📅  最后修改于: 2023-12-03 14:45:54.876000             🧑  作者: Mango
本文将介绍一个使用 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 编写的素数生成器。该生成器使用了一种高效的算法来生成连续的素数。我们还给出了一个简单的示例来演示如何使用素数生成器。
如果你对生成更多素数感兴趣,可以继续迭代素数生成器并将结果存储在一个列表中。同样的方法也可以用于生成任意多个素数。
注意:代码片段中使用到的函数/变量名称请与你的实际代码保持一致。