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; }