按照题目模拟即可
ref{:target=”_blank”}
C++ 代码
class Solution {
public:
bool checkPerfectNumber(int num) {
if(num == 1)return false;
int sum = 0;
for(int i=2; i<=sqrt(num); ++i) {
if(num % i == 0) {
sum += i;
// 排除 i*i == num 的情况
if(i != num/i) sum += num/i;
}
}
sum += 1; // 因子1
return sum == num;
}
};