解题思路:
枚举所有的完美数即可,从2开始一直到平方根,一次遍历,进行判断是否是num的因子,并且把num/i加进去(两个因子),代码如下:
class Solution {
public:
bool checkPerfectNumber(int num) {
if(num == 1) {
return false;
}
int sum = 1;
for(int i = 2; i * i <= num; i ++) {
if(num % i == 0) {
sum += i;
if(i * i < num) {
sum += num / i;
}
}
}
return sum == num;
}
};