python3练习100题——019

原题链接:http://www.runoob.com/python/python-exercise-example19.html

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

我的代码:

def fun():
    for num in range(1,1001):
        l=[1]      #1不传入循环,直接输出
        total=1    
        n=num
        for i in range(2,n):   #上限不能到n 
       
if n%i==0: l.append(i) total+=i if total==num: print("%d is a perfect number\n" %num) print(l)

思考:

题目分析题到了,这道题与014——分解质因数的题可以参考。但是实际还是有区别。

这次要的是一个数的所有因数,而不是质因数,所以只用一个循环从2到n-1找到所有的因数即可。

posted @ 2018-06-06 13:03  Drifter_y  阅读(748)  评论(0编辑  收藏  举报