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

Python编写函数:输出不超过n的所有完美数(调用函数is_perfect,用函数defperfect_numbers(n)... Python编写函数:输出不超过n的所有完美数(调用函数is_perfect,用函数def perfect_numbers(n) 展开
 我来答
Storm_duck
2018-06-14 · TA获得超过1629个赞
知道小有建树答主
回答量:1104
采纳率:82%
帮助的人:451万
展开全部
#!/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)

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式