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)

相关推荐
冰清-小魔鱼22 分钟前
各类数据存储结构总结
开发语言·数据结构·数据库
儿歌八万首1 小时前
鸿蒙 ArkUI 实战:沉浸式状态栏的 3 种实现方案
华为·harmonyos
大雷神1 小时前
HarmonyOS中考试模板开发教程
华为·harmonyos
鸣弦artha1 小时前
Flutter框架跨平台鸿蒙开发 —— Image Widget 基础:图片加载方式
flutter·华为·harmonyos
小六子成长记1 小时前
【C++】:搜索二叉树的模拟实现
数据结构·c++·算法
菜鸟233号2 小时前
力扣377 组合总和 Ⅳ java实现
java·数据结构·算法·leetcode
我是大咖2 小时前
二级指针与指针数组搭配
c语言·数据结构·算法
D_FW3 小时前
数据结构第五章:树与二叉树
数据结构·算法
余瑜鱼鱼鱼3 小时前
Java数据结构:从入门到精通(九)
数据结构
float_六七3 小时前
设备分配核心数据结构全解析
linux·服务器·数据结构