题解 | #完全数计算#

完全数计算

http://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84


public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        if(sc.hasNext()){
            //接收一个数
            int input = sc.nextInt();
            //用来统计完全数
            int count=0;
            for(int i =1;i<=input;i++){
                if(PerNum(i)){
                    count++;
                }
            }
            System.out.print(count);
        }
    }
    private static boolean PerNum(int num){
        //计算出来的因子,放在一个set集合中
        HashSet<Integer> set=new HashSet<>();
        //计算因子
        for(int j=1;j<=num;j++){
            if(num%j==0){
                //没有余数说明是因子
                set.add(j);
            }
        }
        int all=0;
        //对set集合进行遍历
        for(Integer integer:set){
            if(integer!=num){
                all+=integer;
            }
        }
        //再判断传进来的数和计算的数是否相同
        if(all==num){
            return true;
        }else{
            return false;
        }

    }
}
全部评论

相关推荐

预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
头像 会员标识
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务