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

Python素数检测代码测试大于4的数时异常,请求排查

素数检测代码问题排查

你的代码核心问题是break语句的位置错误:它没有被包裹在if (x % i) == 0的代码块内,导致for循环仅执行一次迭代就直接终止,既无法完成所有除数的检查,也不会触发循环的else分支。

举个例子,当x=5时,循环第一次迭代i=2,判断5%2≠0后直接执行break,循环提前结束。此时既不会打印"NOT prime",也不会进入else块打印"YES, it's prime",所以没有任何输出,表现为返回NULL。

修正后的代码如下:

x = 5
if x > 1:
    for i in range(2, x):
        if (x % i) == 0:
            print("NOT prime")
            break  # 仅当找到能整除的因数时才终止循环
    else:
        print("YES, it's prime")
else:
    print("NOT prime, because the number is < 1")

补充说明:Python的for循环else分支是特殊语法,只有当循环**正常结束(未被break终止)**时才会执行。把break移到if块内,就能保证只有找到因数时才提前终止循环,否则循环完成所有迭代后进入else分支,正确判断素数。

内容的提问来源于stack exchange,提问作者Silviu C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:05:17