LeetCode – 507 -完美数 – Java – 两种解法

题目

在这里插入图片描述


解题思维一:

这题的关键就在于:如何获取一个正整数的所有正因数。
我的想法是这样的:
在这里插入图片描述


代码如下:

class Solution {
    public boolean checkPerfectNumber(int num) {
        if(num == 1){// 1 肯定不是完美数,除去本身,什么也没有
            return false;
        }
        int sum = 1; // num > 1 :num正因子中肯定是有1的(1 * num == num)
        for(int i = 2; i * i <= num; i++){
            if(num % i == 0){
                sum += i;
                if( i * i < num){
                    sum += num/i;
                }
            }
        }
        return sum == num;
    }
}

在这里插入图片描述

代码细节

在这里插入图片描述


第二种解法 - (数学)

我可以很认真的告诉你,我不会!
是力扣第二个的题解,我是看不懂这个公式。但是!感觉很牛皮!
在这里插入图片描述
.

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>