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)

相关推荐
一叶落4386 分钟前
LeetCode 134. 加油站(贪心算法详解 + C语言实现)
c语言·数据结构·算法·leetcode·贪心算法
互联网散修20 分钟前
零基础鸿蒙应用开发第六节:复杂数据类型入门 —— 数组、元组与枚举
华为·log4j·harmonyos
j_xxx404_21 分钟前
常见位运算基础知识,技巧总结以及力扣实战
数据结构·c++·算法·leetcode
实心儿儿34 分钟前
算法6:相交链表
数据结构·算法·链表
每天回答3个问题38 分钟前
LeetCodeHot100|链表总结
数据结构·c++·链表
AC__dream1 小时前
2024秋招-字节跳动-算法岗笔试
数据结构·算法
盐焗西兰花1 小时前
鸿蒙学习实战之路-Share Kit系列(13/17)-配置目标应用名单(企业应用)
学习·华为·harmonyos
一叶落4381 小时前
LeetCode 151. 反转字符串中的单词(C语言)【双指针 + 字符串处理】
c语言·数据结构·算法·leetcode
junnhwan1 小时前
LeetCode Hot 100——栈
java·数据结构·算法·leetcode·hot 100
superior tigre1 小时前
347 前k个高频元素
数据结构·算法·leetcode