python求因数之和


n=int(input("please input a integer n:"))
result =0
for i in range(1,n):
    if n%i==0:result+=i
print("%d"%result)

求看哪里出错输出不太对..
问题是 从键盘输入一个n,输出其因数之和(包含1和自身)
样例输入1:6
样例输出1:12

range(1,n+1)才是从1到n循环


n = eval(input('请输入正整数n='))
a=0
for i in range(1,n+1):
    if(n%i==0):
        a+=i

print(a)

你对range的理解有一点偏差。range(1,n)表示的范围是1到n-1,是不包含n的
所以要改成range(1,n+1)才行
明白这个逻辑的话,代码就没问题了。采纳一下下

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632