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

Python使用if、while求120约数代码未达要求问题咨询

问题背景

本次任务要求使用Python的if条件判断、while循环完成带条件的约数查找:查找整数120的所有约数,打印全部约数并统计约数总个数。

提交的实现代码
div_n = 1
count = 0
n = 120

while div_n <= n:
    if n % div_n == 0:
        print(div_n)
        count += 1
    div_n += 1
print('number of divisor that 120 is {}.'.format(count))
代码运行输出
1
2
3
4
5
6
8
10
12
15
20
24
30
40
60
120
number of divisor that 120 is 16
问题排查结论
  • 代码的计算逻辑没有错误:遍历1到120的整数,通过取模运算判断是否为约数,最终统计得到16个约数,和120的真实约数集合完全一致,不存在计算结果错误。
  • 判题系统不通过基本都是非逻辑类原因导致,常见情况如下:
    • 输出字符串不匹配:多数OJ类判题系统会对输出内容做精确匹配,当前代码最后的统计语句存在语法表述问题,number of divisor that 120 is {}是不规范的英文表达,常规表述应为The number of divisors of 120 is {},如果题目指定了输出文案,当前写法会直接被判错。
    • 未满足隐含效率要求:如果题目要求优化遍历逻辑(约数成对出现,仅需遍历到√n即可得到全部约数),当前从1遍历到120的O(n)写法虽然结果正确,但不符合效率约束,也会触发判题失败。
    • 代码规范不符合要求:如果题目对变量命名、缩进格式、注释有明确要求,当前代码未满足对应规范时也可能判定不通过。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:15:38