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