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

Python计算正整数n排除1与自身的因数个数的代码运行错误求助

问题定位与修正方案

错误原因梳理

  • 核心逻辑混淆:你的代码当前是统计「输入的n值」的总因数个数,需求是统计1到n范围内每个整数各自排除1和自身后的因数个数,统计对象完全错位。
  • 计数变量作用域错误:factor变量定义在for循环外,会在遍历过程中持续累加,不会为每个待统计的数单独重置计数,导致结果累加错误。
  • 整除判断逻辑写反:if n % a == 0是判断输入的n能否被a整除,实际需要判断的是「当前待统计的数」能否被介于2和自身-1之间的数整除。
  • 输出时机错误:print放在了单次判断逻辑后,会每做一次整除判断就输出一次,应该等单个数字的因数统计完成后再统一输出。
  • 额外的减2逻辑存在边界问题:对于1这类因数总数小于2的数字,直接减2会得到负数结果,不符合预期。

修正后代码

n = int(input('Enter the number: '))
# 打印表头
print("n factor")
# 外层遍历1~n的所有待统计数字
for target in range(1, n + 1):
    factor_cnt = 0
    # 内层直接统计2到target-1之间的因数,天然排除1和自身
    for divisor in range(2, target):
        if target % divisor == 0:
            factor_cnt += 1
    # 统计完成后输出结果
    print("%d\t%d" % (target, factor_cnt))

输入10时运行代码即可得到你给出的预期输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:57:04