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

判断质数的代码提交CodeChef显示错误,请求排查问题

问题分析与修复方案

你的质数判断代码存在两个关键逻辑错误,导致无法通过测试用例:

错误1:错误判定2为非质数

2是最小的质数,但代码中if N <= 2: print('no')直接将2归为非质数,完全不符合质数定义。

错误2:边界值处理后重复输出

当输入为2时,代码会先执行print('no'),之后循环不运行,flag保持False,又会执行print('yes'),最终输出两行结果,这会被平台判定为答案错误。

修复后的代码

N = int(input())
if N <= 1:
    print('no')
elif N == 2:
    print('yes')
else:
    flag = False
    for j in range(2, int(N**0.5) + 1):
        if N % j == 0:
            flag = True
            break  # 找到因数后直接终止循环,提升效率
    print('yes' if not flag else 'no')

修复说明

  • 单独处理N <=1:这类数都不是质数
  • 单独处理N ==2:明确判定为质数
  • 加入break语句:一旦找到能整除N的数,立即终止循环,无需继续遍历,优化性能
  • 避免重复输出:通过分支结构确保每个输入只会输出一行结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:51:59