Welcome to Subscribe On Youtube

507. Perfect Number

Description

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

  • class Solution { public boolean checkPerfectNumber(int num) { if (num == 1) { return false; } int s = 1; for (int i = 2; i * i <= num; ++i) { if (num % i == 0) { s += i; if (i != num / i) { s += num / i; } } } return s == num; } } 
  • class Solution { public: bool checkPerfectNumber(int num) { if (num == 1) return false; int s = 1; for (int i = 2; i * i <= num; ++i) { if (num % i == 0) { s += i; if (i != num / i) s += num / i; } } return s == num; } }; 
  • class Solution: def checkPerfectNumber(self, num: int) -> bool: if num == 1: return False s, i = 1, 2 while i * i <= num: if num % i == 0: s += i if i != num // i: s += num // i i += 1 return s == num 
  • func checkPerfectNumber(num int) bool { if num == 1 { return false } s := 1 for i := 2; i*i <= num; i++ { if num%i == 0 { s += i if i != num/i { s += num / i } } } return s == num } 
  • function checkPerfectNumber(num: number): boolean { if (num <= 1) { return false; } let s = 1; for (let i = 2; i <= num / i; ++i) { if (num % i === 0) { s += i; if (i * i !== num) { s += num / i; } } } return s === num; } 

All Problems

All Solutions