507-完美数

Posted angelica-duhurica

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了507-完美数相关的知识,希望对你有一定的参考价值。

507-完美数

对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。

给定一个 整数 n, 如果他是完美数,返回 True,否则返回 False

示例:

输入: 28
输出: True
解释: 28 = 1 + 2 + 4 + 7 + 14

提示:

输入的数字 n 不会超过 100,000,000. (1e8)

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/perfect-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    public boolean checkPerfectNumber(int num) {
        // 1.找出所有因子,求和
        if(num == 1) return false;

        int sum = 0;
        int refactor = 2;
        double sqrt = Math.sqrt(num);
        while (refactor < sqrt) {
            if(num % refactor == 0) {
                sum = sum + refactor + num / refactor;
            }
            refactor++;
        }

        if(refactor == sqrt) {
            sum = sum + refactor;
        }
        return sum + 1 == num;

        // 2.
//        switch(num) {
//            case 6:
//            case 28:
//            case 496:
//            case 8128:
//            case 33550336:
//                return true;
//        }
//        return false;

    }

以上是关于507-完美数的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 507 完美数[枚举] HERODING的LeetCode之路

LeetCode 507 完美数[枚举] HERODING的LeetCode之路

力扣507完美数

LeetCode Algorithm 507. 完美数

LeetCode:507. 完美数————简单

Python|Leetcode《507》|完美数