问题:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有“完数”。
#! /usr/bin/env python3 # -*- coding:utf-8 -*- # Author : Ma Yi # Blog : http://www.cnblogs.com/mayi0312/ # Date : 2020-06-19 # Name : demo019 # Software : PyCharm # Note : 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有“完数”。 # 入口函数 if __name__ == '__main__': count = 0 for i in range(2, 1001): factor_list = [] # 用于存储因子的列表 for j in range(1, i // 2 + 1): if i % j == 0: factor_list.append(j) if sum(factor_list) == i: # 完数 count += 1 print("Perfect number%d:%d" % (count, i))
运行结果:
Perfect number1:6 Perfect number2:28 Perfect number3:496