You need to enable JavaScript to run this app. Python质因数分解中如何正确统计质因数相乘的循环执行次数
优惠活动
大模型
产品
解决方案
定价
更多

Python质因数分解中如何正确统计质因数相乘的循环执行次数

问题根源定位
  • 原代码中的计数变量c在函数开头初始化后,没有随质因数切换做值重置:完成质因数2的次数统计后,c的值停留在3,后续统计质因数5时,会在这个残留值的基础上继续累加。
  • 代入200的分解流程验证:处理完质因数2时c=3,进入质因数5的整除环节后,连续两次执行除以5的操作,让c从3累计到5,最终输出错误的[5,5],和预期的次数统计逻辑不符。
修正实现

核心调整有两点:

  • 每次进入新质因数的整除统计流程前,将计数器c重置为0,避免上一轮的计数值残留
  • 将原来的普通除法操作替换为整数整除//,避免Python3中普通除法产生浮点数带来的精度问题

修正后的可运行代码:

def factor(N):
    f = []
    k = 2
    while k <= N:
        if N % k == 0:
            c = 0  # 重置计数器,开始统计当前质因数的出现次数
            while N % k == 0:
                N = N // k
                c += 1
            f.append([k, c])
        else:
            k += 1
    return f

result = factor(200)
print(result)

运行上述代码后,将输出符合预期的[[2, 3], [5, 2]]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 07:15:08