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)

相关推荐
橘颂TA2 小时前
【剑斩OFFER】算法的暴力美学——力扣 844 题:比较含退格的字符串
数据结构·c++·算法·力扣·结构与算法
REDcker2 小时前
Android WebView 升级 - WebViewUpgrade 库使用详解
android·华为·harmonyos·webview
funnycoffee1232 小时前
华为路由器或3层设备接口下的arp broadcast enable作用是啥?
网络·华为
自然数e3 小时前
c++多线程【多线程常见使用以及几个多线程数据结构实现】
数据结构·c++·算法·多线程
黛色正浓3 小时前
leetCode-热题100-普通数组合集(JavaScript)
java·数据结构·算法
辞砚技术录3 小时前
MySQL面试题——索引、B+树
数据结构·数据库·b树·面试
666HZ6664 小时前
数据结构1.0 数据结构在学什么
数据结构·算法
余瑜鱼鱼鱼4 小时前
Java数据结构:从入门到精通(五)
数据结构
baobao熊4 小时前
【Harmony OS 6】IBest-ORM库使用详解(一)
华为·harmonyos
空空潍4 小时前
hot100-滑动窗口最大值(day11)
数据结构·c++·算法·leetcode