【打印完数】Python

打印完数:输入一个正整数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)

发布了47 篇原创文章 · 获赞 7 · 访问量 4241

猜你喜欢

转载自blog.csdn.net/LiuLong0907/article/details/105256533