题意:
思路:
1e8num<=1e8,所以用s q r t ( n u m ) 的复杂度枚举所有的因子进行判断即可。
对于任意的n u m m o d i = 0,要加上i;如果i ! = n u m / i 的话,那么就再加上n u m / i
注意要特判1的情况。
代码:
class Solution { public: bool checkPerfectNumber(int num) { if(num==1) return false; int sum=1; for(int i=2;i<=num/i;i++) if(num%i==0){ sum=sum+i; if(i!=num/i) sum=sum+num/i; } return sum==num; } };