Skip to content

507. Perfect Number

Easy

A perfect number is a positive integer that is equal to the sum of its positive divisors, excluding the number itself. A divisor of an integer x is an integer that can divide x evenly.

Given an integer n, return true if n is a perfect number, otherwise return false.

Solution

import math


class Solution:
    def checkPerfectNumber(self, num: int) -> bool:
        if num == 1:
            return False

        divisors = set([1])
        for m in range(2, math.ceil(math.sqrt(num))):
            k = num // m
            if k * m == num:
                divisors.add(m)
                divisors.add(k)

        if sum(list(divisors)) == num:
            return True

        return False