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)

相关推荐
im_AMBER9 分钟前
Leetcode 119 二叉树展开为链表 | 路径总和
数据结构·学习·算法·leetcode·二叉树
DN202031 分钟前
当AI开始评估客户的“成交指数”
数据结构·人工智能·python·microsoft·链表
ITUnicorn2 小时前
【HarmonyOS 6】HarmonyOS 自定义时间选择器实现
华为·harmonyos·arkts·鸿蒙·harmonyos6
Vic101012 小时前
算法D1-20260212:双指针专题
java·数据结构·算法
935962 小时前
机考24 翻译18 单词11
c语言·数据结构·算法
果粒蹬i2 小时前
【HarmonyOS】RN of HarmonyOS实战开发项目+Apollo GraphQL客户端
华为·harmonyos·graphql
无聊的小坏坏3 小时前
一文讲通:二分查找的边界处理
数据结构·c++·算法
前端不太难3 小时前
HarmonyOS PC 多窗口最难的一层
华为·状态模式·harmonyos
木斯佳3 小时前
HarmonyOS 6实战(工程应用篇)—从被动响应到主动治理,如何使用HiAppEvent捕捉应用崩溃信息
华为·harmonyos