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;}}