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)

相关推荐
sin_hielo2 小时前
leetcode 2483
数据结构·算法·leetcode
不爱吃糖的程序媛2 小时前
ArkUI-X 6.0.0 Release发布
华为·harmonyos
大头流矢2 小时前
归并排序与计数排序详解
数据结构·算法·排序算法
一路往蓝-Anbo3 小时前
【第20期】延时的艺术:HAL_Delay vs vTaskDelay
c语言·数据结构·stm32·单片机·嵌入式硬件
w139548564224 小时前
Flutter跨平台组件集成框架鸿蒙化使用指南
flutter·华为·harmonyos
DARLING Zero two♡7 小时前
拒绝“环境劝退”:Llama-2-7b 在昇腾 NPU 上的工程化部署与深度故障排查实录
华为·llama·gpu算力
梭七y8 小时前
【力扣hot100题】(103)移动零
数据结构·算法·leetcode
H CHY9 小时前
C++代码
c语言·开发语言·数据结构·c++·算法·青少年编程
xiaolang_8616_wjl10 小时前
c++题目_传桶(改编于atcoder(题目:Heavy Buckets))
数据结构·c++·算法
历程里程碑12 小时前
双指针巧解LeetCode接雨水难题
java·开发语言·数据结构·c++·python·flask·排序算法