Leecode 507

对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。

给定一个 正整数 n, 如果他是完美数,返回 True,否则返回 False

示例:

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

注意:

输入的数字 n 不会超过 100,000,000. (1e8)

import math
class Solution(object):
    def checkPerfectNumber(self, num):
        """
        :type num: int
        :rtype: bool
        """
        if num < 0:
            return False
        if num == 1:
            return False
        else:
            data = [1]
            for i in range(2, int(math.sqrt(num))+1):
                if num % i == 0:
                    data.append(i)
                    data.append(num/i)
            # print data
            if sum(data) == num:
                return True
            else:
                return False

猜你喜欢

转载自blog.csdn.net/jhlovetll/article/details/84431108