507. Perfect Number
Description
A perfect number is a positive integer that is equal to the sum of its positive divisors, excluding the number itself. A divisor of an integer x
is an integer that can divide x
evenly.
Given an integer n
, return true
if n
is a perfect number, otherwise return false
.
Example 1:
Input: num = 28 Output: true Explanation: 28 = 1 + 2 + 4 + 7 + 14 1, 2, 4, 7, and 14 are all divisors of 28.
Example 2:
Input: num = 7 Output: false
Constraints:
1 <= num <= 108
Solutions
Solution 1: Enumeration
First, we check if \(\textit{num}\) is 1. If it is, then \(\textit{num}\) is not a perfect number, and we return \(\text{false}\).
Next, we enumerate all positive divisors of \(\textit{num}\) starting from 2. If \(\textit{num}\) is divisible by a positive divisor \(i\), we add \(i\) to the sum \(\textit{s}\). If the quotient of \(\textit{num}\) divided by \(i\) is not equal to \(i\), we also add the quotient to the sum \(\textit{s}\).
Finally, we check if \(\textit{s}\) is equal to \(\textit{num}\).
The time complexity is \(O(\sqrt{n})\), where \(n\) is the value of \(\textit{num}\). The space complexity is \(O(1)\).
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|