Loading

python实现找出1000以内的所有完美数

目录

1、题目描述

2、代码实现

3、运行结果


1、题目描述

完美数是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。第一个完美数是6。
输入:(无)
输出: [6, 28, 496]

2、代码实现

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
import math

def fun():
    list = []
    k = 1000
    for num in range(1, k + 1):
        result = 0
        for factor in range(1, int(math.sqrt(num)) + 1):
            if num % factor == 0:
                result += factor
                if factor > 1 and num // factor != factor:
                    result += num // factor
        if result == num and num > 1:
            list.append(num)
    return list

if __name__ == '__main__':
    print(fun())

3、运行结果

[6, 28, 496]

 

posted @ 2022-12-25 12:44  Roc-xb  阅读(128)  评论(0编辑  收藏  举报

易微帮源码


易微帮官网