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

如何修改Python代码,排除自身计算n的非1非自身因数和?

修改方案:排除数字自身作为因数

核心改动很简单,只需要调整循环的遍历范围,把原来包含n的范围改成到n之前结束:

原来的循环是for j in range(2, n + 1):,这里的n + 1会让循环遍历到n本身。把它改成range(2, n),因为Python的range是左闭右开区间,这样就只会遍历2到n-1的数字,自然排除了n自身。

修改后的完整代码:

def OfN(n):
    print("Factors of ", n, "= ", end="")
    factor = []
    # 调整range的结束值为n,排除自身
    for j in range(2, n):
        if n % j == 0:
            print(j, end=" ")
            factor.append(j)
    sumN = sum(factor)
    print("\nSum of all factors = " + str(sumN))

    return sumN < n

测试n=5的情况,输出如下:

>>> OfN(5)
Factors of  5 = 
Sum of all factors = 0
True

完全符合期望。另外最后一行的return可以简化成return sumN < n,和原来的逻辑一致但更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:05:24