python怎么计算完美数

如图...如何判断完美数的代码已经写好了,但是后面的怎么完成就不会写了...求帮助。。。defisPerfectNumber():n=input('pleaseinput... 如图...如何判断完美数的代码已经写好了,但是后面的怎么完成就不会写了...求帮助。。。def isPerfectNumber(): n = input('please input an integer:') m = n for i in range(len(n)): if str(n)[i] == 0: n = n.replace(str(n)[i],'') if int(n) > 0 and int(n) % 10 != 0 and int(m)%int(n) == 0: return True else: return False
sorry图放错了...见第二张图...
展开
 我来答
Storm_duck
2018-06-16 · TA获得超过1629个赞
知道小有建树答主
回答量:1104
采纳率:82%
帮助的人:455万
展开全部

不知道你的完美数是怎么定义的,原先写了一个判断完美数,并输出小于输入值N的所有完美数的,稍微修改了下。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# @Time    : 2018/6/16 16:45
# @File    : NthPerfectNumber.py
"""
输出第N个完美数
"""


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


def nthPerfectNumber(n):
    m = 0
    t = 1
    temp = []
    while m < n:
        if is_perfect(t):
            temp.append(t)
            m += 1
            t += 1
        else:
            t += 1
    else:
        return temp[n - 1]


if __name__ == '__main__':
    nths = int(raw_input(u'请输入需要返回的第N个完美数:'))
    print u'第{0}个完美数是:{1}'.format(nths, nthPerfectNumber(nths))

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式