HDU-ACM2040


しんわすう
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32580    Accepted Submission(s): 19659
Problem Description
古代ギリシャの数学者ピタゴラスは自然数研究で、220のすべての真約数(すなわち、自身の約数ではない)の和は、1+2+4+5+10+11+20+22+44+55+110=284であることを発見した.284のすべての真約数は1、2、4、71、142であり、合わせて220である.人々はこのような数に驚き、親和数と呼ばれている.一般的に、2つの数のいずれかが別の数の真約数の和であれば、この2つの数は親和数である.あなたの任務はプログラムを作成して、与えられた2つの数が親和数であるかどうかを判断します.
 
Input
入力データの第1行は1つの数Mを含み、次にM行があり、各行に1つの例があり、2つの整数A,Bを含む.このうち0<=A,B<=600000である.
 
Output
各試験例について、AおよびBが親和数であればYES、そうでなければNOが出力される.
 
Sample Input

   
   
   
   
2 220 284 100 200

 
Sample Output

   
   
   
   
YES NO
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int m=input.nextInt();
        for(int i=0;i<m;i++){
            int a=input.nextInt();
            int b=input.nextInt();
            if(divisor(a)==b&&divisor(b)==a){
                System.out.println("YES");
            }else{
                System.out.println("NO");
            }
        }
    }
    public static int divisor(int n){
        int sum=0;
        for (int i=1;i<=n/2;i++){
            if(n%i==0){
                sum+=i;
            }
        }
        return sum;
    }
}