Python练习实例019

问题:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如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
原文地址:https://www.cnblogs.com/mayi0312/p/13161250.html