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)

相关推荐
翰德恩咨询7 小时前
华为企业市场营销MTL从市场到线索
华为·市场营销·mtl
Miguo94well7 小时前
Flutter框架跨平台鸿蒙开发——旅行攻略规划APP的开发流程
flutter·华为·harmonyos·鸿蒙
放荡不羁的野指针7 小时前
leetcode150题-双指针
数据结构·算法·leetcode
zilikew7 小时前
Flutter框架跨平台鸿蒙开发——食物采购清单APP的开发流程
flutter·华为·harmonyos·鸿蒙
好学且牛逼的马7 小时前
【Hot100|15-LeetCode 238. 除自身以外数组的乘积】
数据结构·算法·leetcode
翰德恩咨询8 小时前
华为2C营销:爆品打造,用IPMS驱动产品上市即上量
华为·ipms流程
BHXDML8 小时前
数据结构:(二)逻辑之门——栈与队列
java·数据结构·算法
Miguo94well8 小时前
Flutter框架跨平台鸿蒙开发——演讲稿生成器APP的开发流程
flutter·华为·harmonyos·鸿蒙
程序员清洒8 小时前
Flutter for OpenHarmony:Dialog 与 BottomSheet — 弹出式交互
开发语言·flutter·华为·交互·鸿蒙
爱吃番茄鼠骗8 小时前
指针函数的应用层与驱动层:解耦核心与实践
数据结构