Python编写函数:输出不超过n的所有完美数(调用函数is_perfect,用函数def per

Python编写函数:输出不超过n的所有完美数(调用函数is_perfect,用函数def perfect_numbers(n)

#!/usr/bin/python
# -*- coding:utf-8 -*-
# @Time    : 2018/6/14 15:30
# @File    : Perfect_Numbers.py
"""
完美数
"""


def is_perfect(anum):
    """判断一个数是不是完美数"""
    assert anum > 0, u'完美数是大于0的整数'
    ll = []
    num = 0
    for i in range(1, anum):
        if anum % i == 0:
            ll.append(i)
        num = sum(ll)
    if num == anum:
        return True
    else:
        return False


def perfect_numbers(a):
    """打印不大于输入参数的所有完美数"""
    temp = 1 + a
    alist = []
    for i in range(1, temp):
        # global alist
        if is_perfect(i):
            alist.append(i)
    if len(alist) == 0:
        print u'不大于{0}的时候没有完美数'.format(a)
    else:
        print u'不大于{0}的时候完美数有:{1}'.format(a, alist)

if __name__ == '__main__':
    nums = int(raw_input(u'请输入一个正整数:'))
    perfect_numbers(nums)

温馨提示:答案为网友推荐,仅供参考
相似回答