用生成器的方式计算任意起止范围内质数的和。质数,又称素数,是大于1的自然数,除了1和它本身外,不能被其他自然数整除。
时间: 2024-04-17 20:05:04 浏览: 93
计算给定范围内质数
以下是一个使用生成器计算任意起止范围内质数和的示例代码:
```python
def is_prime(n):
"""
判断一个数是否为质数
"""
if n <= 1:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def prime_sum(start, end):
"""
生成器,计算起止范围内的质数和
"""
prime_sum = 0
for num in range(start, end+1):
if is_prime(num):
prime_sum += num
yield prime_sum
# 示例用法
for s in prime_sum(1, 100):
print(s)
```
这个代码中,`is_prime` 函数用于判断一个数是否为质数,`prime_sum` 函数用于生成起止范围内的质数和。这里使用了生成器,每次生成器返回质数和的当前值,直到生成器结束。在示例用法中,我们使用 `for` 循环来遍历生成器,每次打印生成器的返回值。
阅读全文