1. 程式人生 > 其它 >#力扣 LeetCode507. 完美數 @FDDLC

#力扣 LeetCode507. 完美數 @FDDLC

技術標籤:演算法&資料結構

題目描述:

https://leetcode-cn.com/problems/perfect-number/

Java程式碼:

class Solution { //1 <= num <= 108
    public boolean checkPerfectNumber(int n) {
        int sqrt=(int)Math.sqrt(n),sum=sqrt*sqrt==n?-sqrt:0;
        for(int i=1;i<=sqrt;i++)if(n%i==0)sum=sum+i+n/i;
        return n<1?false:sum==n+n;
    }
}

class Solution { //1 <= num <= 108
    public boolean checkPerfectNumber(int n) {
        int sqrt=(int)Math.sqrt(n),sum=sqrt*sqrt==n?-sqrt:0;
        for(int i=1,d=n%2==1?2:1;i<=sqrt;i+=d)if(n%i==0)sum=sum+i+n/i;
        return n<1?false:sum==n+n;
    }
}