507 Perfect Number
We define the Perfect Number is apositiveinteger that is equal to the sum of all itspositivedivisors 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 + 14Note:The input numbernwill not exceed 100,000,000. (1e8)
Complexity: O(sqrt(n))
The Idea: We iterate through every possible number that can factor to n and sum up the results. There are a few optimizations here. First, a factor will not exceed sqrt(n), since sqrt(n)*sqrt(n) == n.
Input:
28
Sum:
1
Explanation:
28 = 1 + 2 + 4 + 7 + 14
start
^------------------------------^
^---------^Last updated
Was this helpful?