思路:
首先0和1都不满足。result初始化为num。
依次寻找num的每个因子i,若i不是完全平方数的两个平方根因子且不为1,result减去 i 及num / i,否则result只减i即可。
public class Solution {
public boolean checkPerfectNumber(int num) {
if (num == 0 || num == 1)
return false;
int result = num;
for (int i = 1; i * i <= num; i++) {
if (num % i == 0) {
if (i * i != num && i != 1)
result = result - i - num / i;
else
result = result - i;
}
}
if (result == 0)
return true;
return false;
}
}
Runtime:15ms