Skip to content

Latest commit

 

History

History
34 lines (30 loc) · 870 Bytes

507_perfect_number.md

File metadata and controls

34 lines (30 loc) · 870 Bytes

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.

Example 1:

Input: num = 28
Output: true
Explanation: 28 = 1 + 2 + 4 + 7 + 14
1, 2, 4, 7, and 14 are all divisors of 28.

Example 2:

Input: num = 7
Output: false

Solution

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

        sqr = int(num ** 0.5)
        s = 1
        for i in range(2, sqr + 1):
            if num % i == 0:
                t = num // i
                s += t + i
        return True if s == num else False