用生成器的方式计算任意起止范围内质数的和。质数,又称素数,是大于1的自然数,除了1和它本身外,不能被其他自然数整除。
时间: 2024-01-22 14:18:02 浏览: 64
计算给定范围内质数
可以使用生成器和判断是否为质数的函数来计算任意起止范围内质数的和,具体实现如下:
```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):
"""
生成器,生成指定范围内的所有质数,并计算它们的和
"""
total = 0
for i in range(start, end + 1):
if is_prime(i):
total += i
yield i
print("质数的和为:", total)
# 调用生成器计算 1 到 100 的质数和
for p in prime_sum(1, 100):
print(p, end=" ")
```
在上面的代码中,`is_prime` 函数用于判断一个数是否为质数,`prime_sum` 函数是一个生成器,用于生成指定范围内的所有质数,并计算它们的和。在调用 `prime_sum` 函数生成器时,需要使用 `for` 循环遍历生成的质数,并输出它们的值。同时,`prime_sum` 函数也会输出所有质数的和。
阅读全文