1. 程式人生 > >Android的專欄

Android的專欄

題目描述

如果a的因子和等於b,b的因子和等於a,且a≠b,則稱a,b為親和數對。
比如220的所有真約數(即不是自身的約數)之和為:
1+2+4+5+10+11+20+22+44+55+110=284。
284的所有真約數和為:
1+2+4+71+142=220。
你的任務就編寫一個程式,判斷給定的兩個數是否是親和數。

輸入

輸入資料第一行包含一個數M,接下有M行,每行一個例項,包含兩個整數A,B; 其中 0≤A,B≤99999。

輸出

對於每個測試例項,如果A和B是親和數的話輸出YES,否則輸出NO。

示例輸入

2
220 284
100 200

示例輸出

YES
NO
#include<stdio.h>
void main()
{
	int n;
	scanf("%d",&n);
	while(n--)
	{
		int a,b;
		scanf("%d%d",&a,&b);
		int c1,c2;
		c1=0;
		c2=0;
		int i;
		for(i=1;i<a;i++)
		{
			if(a%i==0)
			{c1+=i;}
		}
		for(i=1;i<b;i++)
		{
			if(b%i==0)
			{c2+=i;}
		}
		if(c1==b && c2==a)
		{printf("YES\n");}
		else
		{printf("NO\n");}
	}
}