首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:完美数

#yyds干货盘点# LeetCode程序员面试金典:完美数

时间:2023-12-04 23:32:59浏览次数:38  
标签:yyds false 示例 int 金典 28 num true LeetCode

题目

对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。


给定一个 整数 n, 如果是完美数,返回 true;否则返回 false。


 


示例 1:


输入:num = 28

输出:true

解释:28 = 1 + 2 + 4 + 7 + 14

1, 2, 4, 7, 和 14 是 28 的所有正因子。

示例 2:


输入:num = 7

输出:false

代码实现

class Solution {
    public boolean checkPerfectNumber(int num) {
        if (num == 1) {
            return false;
        }

        int sum = 1;
        for (int d = 2; d * d <= num; ++d) {
            if (num % d == 0) {
                sum += d;
                if (d * d < num) {
                    sum += num / d;
                }
            }
        }
        return sum == num;
    }
}


标签:yyds,false,示例,int,金典,28,num,true,LeetCode
From: https://blog.51cto.com/u_15488507/8682327

相关文章

  • # yyds干货盘点 # 有一个数据对应表,遍历df数据只要df存在对应的数据就替换掉,但是这个
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Pandas数据处理的问题,一起来看看吧。问题描述:大佬们 请问下这个问题 有一个数据对应表,然后遍历df数据只要df存在对应的数据就替换掉但是这个一直报错(IndexError:index0isoutofboundsf......
  • LeetCode-Java:55.跳跃游戏
    题目给你一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。示例1:输入:nums=[2,3,1,1,4]输出:true解释:可以先跳1步,从下标0到达下标1,然后......
  • [LeetCode Hot 100] LeetCode3. 无重复字符的最长子串
    题目描述思路:滑动窗口定义需要维护的变量//1.定义需要维护的变量intmax_len=0;Map<Character,Integer>hashmap=newHashMap<>();窗口不满足条件,窗口收缩。窗口不是固定大小所以用while//4.窗口不满足条件:窗口收缩//满足这个条件说明有重复元素//这......
  • [LeetCode Hot 100] LeetCode438. 找到字符串中所有字母异位词
    题目描述思路:滑动窗口模板需要维护的变量://1.用于存放结果List<Integer>res=newArrayList<>();//2.定义需要维护的变量:根据题意可知是一个哈希表Map<Character,Integer>map=newHashMap<>();Map<Character,Integer>hashmap_p=newHashMap<>();for(c......
  • LeetCode643. 子数组最大平均数I
    题目描述思路:滑动窗口模板定义需要维护的变量//1.定义需要维护的变量doublesum=0;doublemax_avg=Integer.MIN_VALUE;窗口固定大小为k,所以用ifif(end-start+1==k){ sum-=nums[start]; start+=1;}方法一:classSolution{publicdouble......
  • LeetCode567. 字符串的排列
    题目描述思路:滑动窗口模板定义需要维护的变量Map<Character,Integer>map=newHashMap<>();Map<Character,Integer>map_s1=newHashMap<>();for(charc:s1.toCharArray()){ map_s1.put(c,map_s1.getOrDefault(c,0)+1);}根据题意可知:窗口为固定大小所......
  • [LeetCode] 1266. Minimum Time Visiting All Points
    Ona2Dplane,therearenpointswithintegercoordinatespoints[i]=[xi,yi].Returntheminimumtimeinsecondstovisitallthepointsintheordergivenbypoints.Youcanmoveaccordingtotheserules:In1second,youcaneither:moveverticallyb......
  • Leetcode刷题day5-哈希表.异位词.交集.快乐数.两数和
    242.有效的字母异位词242.有效的字母异位词-力扣(LeetCode)给定两个字符串 _s_ 和 _t_ ,编写一个函数来判断 _t_ 是否是 _s_ 的字母异位词。注意:若 _s_ 和 _t_ 中每个字符出现的次数都相同,则称 _s_ 和 _t_ 互为字母异位词。示例 1:输入:s="anagram",......
  • LeetCode-Java:121. 买卖股票的最佳时机
    题目给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,......
  • LeetCode-Java:122. 买卖股票的最佳时机Ⅱ
    题目给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润。示例1:输入:prices=[7,1,5,3,6,4]输出:7解释......