在解决问题的过程中,我遇到了一个问题。以下是任务详细信息:
编写一个函数,求出所有小于给定数字 n 的素数之和。素数是只能被它本身和 1 整除的数。
这是我的代码:
def sum_of_primes(n):
primes = []
for num in range(2, n):
if is_prime(num):
primes.append(num)
return sum(primes)
def is_prime(num):
for i in range(2, int(num ** 0.5)):
if num % i == 0:
return False
return True
在此代码中,该函数应查找所有小于nsum_of_primes()的素数之和。它使用辅助函数来检查数字是否为素数。is_prime()
如果您向我解释我的错误在哪里,我将非常感激。
你的错误是你错误地实现了
is_prime(). 例如,检查数字“4”。你的函数会说它是一个素数。但显然,事实并非如此。为了正确计算,请使用此函数:
注意极值
range()。您可以在此处阅读有关序列如何工作的更多信息。