LeetCode<Day2>PerfectNumber

自己的方法,超时了。

public boolean perfect(int num)
{

    List<Integer> list = new ArrayList<Integer>();
    int sum = 0;
    for(int i = 1;i <=num/2;i++)
    {
        if(num%i==0) list.add(i);
    }
    for(int s : list)
    {
        sum+=s;
    }
    return sum==num;
}
别人的方法:

public class Solution {
    public boolean checkPerfectNumber(int num) {
        if (num == 1) return false;
        
        int sum = 0;
        for (int i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0) {
                sum += i;
                if (i != num / i) sum += num / i;
            }
        }
        sum++;
        
        return sum == num;
    }
}


猜你喜欢

转载自blog.csdn.net/weixin_38035852/article/details/78765188
今日推荐