题目
对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。
给定一个 整数 n, 如果是完美数,返回 true,否则返回 false
解题思路
枚举出所有的因子,求和判断即可。
代码
class Solution {
public boolean checkPerfectNumber(int num) {
if (num <= 1) return false;
int cnt = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
if (i * i != num) cnt += i + num / i;
else cnt += i;
}
}
return cnt == num;
}
}
class Solution {
public boolean checkPerfectNumber(int num) {
if (num == 6 || num == 28 || num == 496 || num == 8128 || num == 33550336) return true;
else return false;
}
}