原题链接: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找到所有的因数即可。
来源:oschina
链接:https://my.oschina.net/u/4418707/blog/3946596