Perfect Number

来源:互联网 发布:linux 防火墙 编辑:程序博客网 时间:2024/06/01 07:41

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: 28Output: TrueExplanation: 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;    }};



0 0
原创粉丝点击