You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

特定区间素数查找Python程序故障:素数重复输出问题排查

素数查找程序重复输出问题修复

问题原因

你的代码在内层循环的else分支中直接打印num,这会导致每一次num不能被当前i整除时就输出一次。比如素数29,会被i从2到28依次检查,每次不整除都会打印29,最终重复输出27次。

修正方案

我们需要确认内层循环完整执行完毕(即没有找到任何能整除num的i),再打印num。可以用两种方式实现:

方案1:使用Python的for-else结构(更简洁)

start = 25
end = 50

print(f"25到50之间的素数是:")

for num in range(start, end+1):
    if num > 1:
        for i in range(2, num):
            if num % i == 0:
                break
        else:
            # 只有内层循环未被break触发时,才执行此处(说明是素数)
            print(num)

方案2:使用标记变量

start = 25
end = 50

print(f"25到50之间的素数是:")

for num in range(start, end+1):
    if num > 1:
        is_prime = True
        for i in range(2, num):
            if num % i == 0:
                is_prime = False
                break
        if is_prime:
            print(num)

验证输出

运行修正后的代码,输出将符合预期:

25到50之间的素数是:
29
31
37
41
43
47

内容的提问来源于stack exchange,提问作者Senthamil selvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:41:08