每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我!
https://www.cnblogs.com/poloyy/category/1676599.html
题目
如果一个正整数等于除它本身之外其他所有除数之和,就称之为完全数。 例如:6是完全数,* 因为6 = 1+2+3; 下一个完全数是28 = 14+7+4+2+1。 求1000以下的完全数
解题思路
- 外循环6-1000以内的数字
- 内循环当前数字,得到所有整除数,并添加到一个列表
- 列表求和比较当前数字是否一致
答案
all = [] for num in range(6, 1001): lists = [] for n in range(1, num): if num % n == 0: lists.append(n) if sum(lists) == num: all.append(num) print(all)