用Python自定义递归函数求1...n的素数和
时间: 2024-10-19 12:14:12 浏览: 44
在Python中,你可以使用递归来编写一个自定义函数来计算1到n之间的素数之和。首先,我们需要定义一个辅助函数用于检查一个数是否为素数,然后利用这个辅助函数来遍历并累加所有素数。
下面是一个简单的实现:
```python
def is_prime(num):
if num <= 1:
return False
elif num == 2:
return True
elif num % 2 == 0:
return False
else:
for i in range(3, int(num**0.5) + 1, 2): # 只需检查到数的平方根即可
if num % i == 0:
return False
return True
def sum_of_primes(n):
def _sum_of_primes_helper(start, current_sum):
if start > n:
return current_sum
elif is_prime(start):
current_sum += start
return _sum_of_primes_helper(start + 1, current_sum)
return _sum_of_primes_helper(2, 0) # 从2开始,因为2是最小的素数
# 测试
n = 20
prime_sum = sum_of_primes(n)
print(f"1到{n}的素数之和是: {prime_sum}")
阅读全文