python用递归函数求素数和
时间: 2023-06-06 21:04:46 浏览: 124
可以使用递归函数来求素数和,以下是示例代码:
```
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 sum_prime(n):
if n == 2:
return 2
elif is_prime(n):
return n + sum_prime(n-1)
else:
return sum_prime(n-1)
n = 10
print("Sum of primes less than or equal to", n, "is", sum_prime(n))
```
在这个代码中,is_prime() 函数用于判断一个数是否为素数。sum_prime() 函数递归地计算小于等于 n 的所有素数的和。如果 n 是 2,则直接返回 2;否则,如果 n 是素数,则返回 n 加上小于 n 的所有素数的和;否则,返回小于 n 的所有素数的和。
相关问题
用Python自定义递归函数求1...n的素数和
在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}")
Python用递归函数 求解1-n的素数和
我能为您提供如下Python代码:
```python
def is_prime(num):
"""判断一个数是否为素数"""
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def sum_of_primes(n):
"""递归求解1-n的素数和"""
if n <= 1:
return 0
if is_prime(n):
return n + sum_of_primes(n-1)
else:
return sum_of_primes(n-1)
print(sum_of_primes(100)) # 输出 1060
```
这是一个常见的递归函数实现,先定义一个判断素数的函数`is_prime`,然后定义递归函数`sum_of_primes`。在`sum_of_primes`函数内部,如果当前的数是素数,则返回当前数和前面所有数的素数和;否则返回前面所有数的素数和。最后,我们可以调用`sum_of_primes`函数并传入一个数`n`,得到`1-n`的素数和。
阅读全文