码迷,mamicode.com
首页 > 其他好文 > 详细

507-完美数

时间:2020-01-23 18:13:09      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:正整数   https   ++   sum   ber   tco   sqrt   class   code   

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-完美数

标签:正整数   https   ++   sum   ber   tco   sqrt   class   code   

原文地址:https://www.cnblogs.com/angelica-duhurica/p/12230822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!