しんわすう

1445 ワード

しんわすう
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 25761    Accepted Submission(s): 15455
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

#include main()
{
int n,a,b,i,j,w,s,k;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&a,&b);
w=0,s=0;
for(i=2;i<=a;i++)
if(a%i==0)
w=w+a/i;
for(j=2;j<=b;j++)
if(b%j==0)
s=s+b/j;
if(s==a&&w==b)
printf("YES");
else printf("NO");
}
return 0;
}