用生成器的方式计算任意起止范围内质数的和。质数又称素数,是大于1的自然数,除了1和它本身外,不能被其他自然数整除。
时间: 2024-05-13 13:16:38 浏览: 124
计算给定范围内质数
可以使用生成器函数和筛选法来计算任意起止范围内质数的和。筛选法是一种常见的质数判断方法,可以通过排除所有不是质数的数来得到质数。
以下是代码实现:
```python
def is_prime(n):
"""
判断一个数是否是质数
"""
if n < 2:
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):
"""
生成器函数,计算起止范围内的质数和
"""
s = 0
for i in range(start, end+1):
if is_prime(i):
s += i
yield s
# 使用生成器计算质数和
start, end = 1, 100
s = 0
for prime in prime_sum(start, end):
s = prime
print("起止范围内质数的和为:", s)
```
这段代码首先定义了一个判断质数的函数 `is_prime`,然后定义了一个生成器函数 `prime_sum`,生成器函数用于计算指定范围内的质数和。最后,我们使用 `for` 循环遍历生成器函数生成的质数和,最终得到指定范围内的质数和。
阅读全文