Skip to content

507. Perfect Number

Math

Problem - 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.

 

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

 

Constraints:

  • 1 <= num <= 108

Solutions

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class Solution:
    def checkPerfectNumber(self, num: int) -> bool:
        if num == 1:
            return False

        sum_val, i = 1, 2
        while i <= num // i:
            if num % i == 0:
                sum_val += i
                if i != num // i:
                    sum_val += num // i
            i += 1

        return sum_val == num

Submission Stats:

  • Runtime: 10 ms (10.04%)
  • Memory: 17.9 MB (39.67%)