打印完数:输入一个正整数n(n<1000),输出1到n之间的所有完数(包括n)。
(完数:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6 = 1+2+3。)
【输入格式】:
共一行,为一个正整数
【输出格式】:
若干行,从小到大输出完数,一行为一个数
【输入样例】:
30
【输出样例】:
6
28
def num(a):
sum=0
#因为完数 为了提高效率 取值范围可以缩小一半
for i in range(1,a//2+1):
if a%i==0:
sum+=i
if sum==a:
return True
else:
return False
n=int(input())
#包括n 取值到n+1
for i in range(1,n+1):
if num(i):
print(i)