HJ56 完全数计算

题目:

HJ56 完全数计算

题解:

1.求出每个数的所有约数,判断是否为完全数。

2.循环1- ,如果能整除即为约数(约数至少两位,i*i = n,所以i的最大值为)。

java 复制代码
    public int getPerfectNumber(int n) {
        int count = 0;
        for (int i = 1; i <= n; i++) {
            if (isPerfectNumber(i)) {
                count++;
            }
        }

        return count;
    }

    private boolean isPerfectNumber(int n) {
        if (n <= 1) {
            return false;
        }

        int sum = 0;
        for (int i = 1; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                sum = sum + i + n/i;
            }
        }

        return sum == 2*n;
    }

时间复杂度:O(N)

相关推荐
mocoding1 小时前
flutter通信小能手pigeon三方库已完成鸿蒙化适配
flutter·华为·harmonyos
念越1 小时前
数据结构:栈堆
java·开发语言·数据结构
dear_bi_MyOnly2 小时前
【多线程——线程状态与安全】
java·开发语言·数据结构·后端·中间件·java-ee·intellij-idea
浪客灿心2 小时前
list_stack_queue
数据结构·list
zh_xuan2 小时前
最小跳跃次数
数据结构·算法
仓颉编程语言2 小时前
鸿蒙仓颉编程语言挑战赛一等奖作品:MeetAI-基于Cangjie的智能会后整理助手
华为·鸿蒙·仓颉编程语言
zh_xuan3 小时前
单青蛙跳台阶
数据结构·算法
大雷神3 小时前
HarmonyOS智慧农业管理应用开发教程--高高种地--第31篇:桌面小组件开发
华为·harmonyos
罗湖老棍子4 小时前
【 例 1】石子合并(信息学奥赛一本通- P1569)
数据结构·算法·区间dp·区间动态规划·分割合并
小高Baby@4 小时前
JSON、bind、form
数据结构·json