完数:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6 = 1+2+3。现在输入一个正整数n,输出1到n之间的所有完数(包括n)
n=int(input())
for i in range(n):
sum=0
j=i+1
m=j//2
for k in range(m):
l=k+1
if (j%l) == 0:
sum=sum+l
if sum==j:
print(sum)
注意:
1,对于range(),若range(5),指的是0,1,2,3,4,所以程序里面有加一;
2,小技巧:一个数的最大因数不会超过这个数的一半,把这点用到程序中会减少运算量。