Python计算小于指定数所有质数和的自定义函数运行错误求助
问题排查与修复方案
原代码核心错误
- 逻辑完全错位:原代码仅判断输入值
num能否被遍历值i整除,完全没有实现「判断i本身是否为质数」的核心逻辑 - 遍历范围错误:要求
num本身为质数时计入结果,遍历范围需要覆盖到num,且1不是质数无需纳入判断 - 无有效质数判断规则:质数的定义是大于1的自然数,除了1和自身外没有其他正因数,原代码完全没有实现该判断逻辑
你给出的sumPrimes(3)原代码执行结果为2,和预期的2+3=5不符,就是上述错误共同导致的。
修复后代码
# 辅助函数:判断单个数值是否为质数 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 sumPrimes(num): prime_sum = 0 # 遍历范围从2到num(包含num) for i in range(2, num + 1): if is_prime(i): prime_sum += i return prime_sum print(sumPrimes(3)) # 输出结果为5,符合预期
内容的提问来源于stack exchange,提问作者StilyNeedsHelp
相关产品推荐
相关产品推荐

