计算20以内质数总和的Python代码运行结果错误,如何排查?
质数求和代码错误分析及修正
错误点
- 过滤了有效质数:代码中的
if number > 3判断直接跳过了2、3两个符合要求的质数,导致求和结果偏小。 - 打印逻辑错误:
print(the_sum)放在了质数累加的分支内,会逐次输出每次累加后的中间值,而非最终的求和结果。
修正后的代码
the_sum = 0 for number in range(20): # 排除小于2的非质数 if number < 2: continue for i in range(2, number): if number % i == 0: break else: the_sum += number # 循环结束后输出最终总和 print(the_sum)
补充说明
如果你需要计算包含20在内的质数和,将range(20)改为range(21)即可。当前修正后的代码输出20以内(不含20)的质数总和为77,符合正确结果。
内容的提问来源于stack exchange,提问作者saleemdamry
相关产品推荐
相关产品推荐

