原题:
We define the Perfect Number is a positive integer that is equal to the sum of all its positive divisors except itself.
Now, given an integer n, write a function that returns true when it is a perfect number and false when it is not.Example:
Input: 28 Output: True Explanation: 28 = 1 + 2 + 4 + 7 + 14
Note: The input number n will not exceed 100,000,000. (1e8)
bool checkPerfectNumber(int num) {
int test=num;
if(num==1)
return false;
test-=1;
for(int n=2;n<=(int)sqrt(num);n++)
{
if(num%n==0)
{
test=test-n;
test=test-num/n;
}
}
if(test==0)
return true;
return false;
}
依次搜索每个分解因子就好,注意不要超时,另外,注意1是false=。