📚 Python筛法求质数(素数)的生成器示例 🌟
在编程的世界里,寻找素数是一项经典任务。今天,我们用Python实现一种高效的方法——埃拉托色尼筛法(Sieve of Eratosthenes),并通过生成器优雅地展示结果。👇
首先,我们需要一个基础函数来初始化和筛选素数序列:
```python
def sieve(limit):
is_prime = [True] (limit + 1)
is_prime[0], is_prime[1] = False, False 0和1不是素数
for num in range(2, int(limit 0.5) + 1):
if is_prime[num]:
yield num 输出当前素数
for multiple in range(num num, limit + 1, num):
is_prime[multiple] = False
```
这段代码的核心逻辑是:从2开始遍历,标记所有非素数为`False`,并使用`yield`逐个返回素数。✨
运行示例:
```python
for prime in sieve(50):
print(prime, end=' ')
```
输出结果:`2 3 5 7 11 13 17 19 23 29 31 37 41 43 47`
这种方法不仅简洁优雅,还非常适合处理大数据范围内的素数生成任务。🌟
💡 小贴士:通过生成器,我们可以按需获取素数,避免一次性加载大量数据到内存中,非常实用!快试试吧!💪