LeetCode Perfect Number
原题链接在这里:https://leetcode.com/problems/perfect-number/#/description
题目:
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)
题解:
把每个divisor相加看是否等于num.
Time Complexity: O(Math.sqrt(num)). Space: O(1).
AC Java:
1 public class Solution { 2 public boolean checkPerfectNumber(int num) { 3 if(num == 1){ 4 return false; 5 } 6 7 int sum = 1; 8 for(int i = 2; i<Math.sqrt(num); i++){ 9 if(num%i == 0){ 10 sum += i+num/i; 11 } 12 } 13 return sum == num; 14 } 15 }