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)

相关推荐
-To be number.wan4 小时前
B 树 vs B+ 树:为什么 MySQL 用 B+ 树,而不是 B 树?
数据结构
全栈开发圈5 小时前
干货分享|鸿蒙6开发从0到App上线
华为·harmonyos
杨间5 小时前
《排序算法全解析:从基础到优化,一文吃透八大排序!》
c语言·数据结构·排序算法
Remember_9935 小时前
【LeetCode精选算法】滑动窗口专题二
java·开发语言·数据结构·算法·leetcode
Gorgous—l6 小时前
数据结构算法学习:LeetCode热题100-动态规划篇(下)(单词拆分、最长递增子序列、乘积最大子数组、分割等和子集、最长有效括号)
数据结构·学习·算法
奔跑的露西ly6 小时前
【HarmonyOS NEXT】ArkUI实现「单格单字符+下划线」手机号/验证码输入框
ui·华为·harmonyos·鸿蒙
木斯佳6 小时前
HarmonyOS实战(人机交互篇):当ToB系统开始“思考”,我们该设计什么样的界面?
华为·人机交互·harmonyos
夜雨声烦丿6 小时前
Flutter 框架跨平台鸿蒙开发 - 中英互译助手 - 完整开发教程
flutter·华为·harmonyos
Remember_9936 小时前
【LeetCode精选算法】滑动窗口专题一
java·数据结构·算法·leetcode·哈希算法
Lueeee.7 小时前
v4l2驱动开发
数据结构·驱动开发·b树