Perfect Number
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)
Subscribe to see which companies asked this question.
求平方根,在1到平方根范围内求解
代码:
class Solution {
public:
bool checkPerfectNumber(int num) {
int ans=1;
int temp=sqrt(num);
if ((temp*temp)==num)
ans+=temp;
else
temp++;
for (int i=2; i<temp; i++)
{
if (num%i==0)
{
ans+=i;
ans+=(num/i);
}
}
if (ans==num)
return true;
return false;
}
};