1199. 完美的数

1199. 完美的数

中文English

我们定义完美数是一个正 整数,它等于除其自身之外的所有 正 约数的总和。

现在,给定一个整数 n,写一个函数,当它是一个完美的数字时返回true,而当它不是时,返回false。

样例

例子:

输入: 28
输出: True
解释: 28 = 1 + 2 + 4 + 7 + 14

注意事项

输入数字n不会超过100,000,000

输入测试数据 (每行一个参数)如何理解测试数据?

 

class Solution:
    """
    @param num: an integer
    @return: returns true when it is a perfect number and false when it is not
    """
    '''
    大致思路:
    1.循环,给出所有的正约数列表,然后取出sum,判断是否等于num,如果等于则返回True,否则False
    '''
    def checkPerfectNumber(self,num):
        l = []
        for i in range(1,num-1):
            if num%i == 0:
                l.append(i)
        return sum(l) == num

注:lintcode未通过,你的代码运行时间超过了限制,检查你的时间复杂度。TLE通常是由死循环造成的,思考一下你的时间复杂度是否是最优的。待优化

posted @ 2020-04-18 16:00  风不再来  阅读(198)  评论(0编辑  收藏  举报