一开始没有考虑到1,这个用例没有通过。
class Solution {
public:
bool checkPerfectNumber(int num) {
if (num==1) return false;
bool ans = false;
int sum(0);
for (int i=2; i<=num/2; i++){
if (num%i==0){
sum +=i;
sum +=(num/i);
}
}
sum = (sum/2)+1;
if (sum==num) ans=true;
return ans;
}
};