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

Python质数生成器编写问题求助:请帮忙排查代码错误

质数生成器代码错误排查与修正

你的代码存在两个核心问题,导致输出结果不符合预期:

  • 重复打印质数
    内层for循环的else块和if i % x == 0同级,这意味着只要当前x不能整除i,就会立刻打印i。比如质数5,会在x=2、x=3、x=4时分别打印一次,同一个质数被重复输出多次。

  • 逻辑判定错误
    质数的定义是大于1的自然数,且除了1和自身外没有其他因数。你的代码没有遍历完所有可能的因数就提前打印,正确逻辑应该是:当遍历完2到i-1的所有数都不能整除i时,才判定i是质数并打印。

修正方案1:使用标志位

for i in range(1, 101):
    if i > 1:
        is_prime = True
        for x in range(2, i):
            if i % x == 0:
                is_prime = False
                break
        if is_prime:
            print(i)

修正方案2:利用Python的for...else结构

Python中for循环的else块会在循环**正常结束(未被break中断)**时执行,刚好匹配质数判定逻辑:

for i in range(1, 101):
    if i > 1:
        for x in range(2, i):
            if i % x == 0:
                break
        else:
            # 循环正常结束,说明无因数,i是质数
            print(i)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:20:56