zoukankan      html  css  js  c++  java
  • HDOJ(HDU) 1406 完数

    Problem Description
    完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3;28=1+2+4+7+14。

    本题的任务是判断两个正整数之间完数的个数。

    Input
    输入数据包含多行,第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(1

    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int t = sc.nextInt();
            while(t-->0){
                int a = sc.nextInt();
                int b = sc.nextInt();
                if(a>b){
                    a=a^b;
                    b=a^b;
                    a=a^b;
                }
    
                int num = numm(a,b);
                System.out.println(num);
            }
    
        }
    
        private static int numm(int a, int b) {
            int num =0;
            for(int i=a;i<=b;i++){
                if(is(i)){
                    num++;
                }
            }
            return num;
        }
    
        private static boolean is(int a) {
            int num=1;
            for(int i=2;i*i<=a;i++){
                if(a%i==0){
                    num=num+i;
                    num=num+a/i;
                }
            }
            if(a==num){
                //System.out.println(a);
                return true;
            }
            return false;
        }
    
    }
    
  • 相关阅读:
    redis集群搭建
    redis状态查看
    redis动态修改参数配置
    redis的info
    redis安装配置
    redis命令总结
    rabbitmq安装
    怎么把U盘启动改为硬盘启动(适用于U盘安装系统时)
    监控宝篇之一(快速入门)
    raid详解
  • 原文地址:https://www.cnblogs.com/webmen/p/5739299.html
Copyright © 2011-2022 走看看