原题链接: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找到所有的因数即可。