亲和数
Input
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含两个整数A,B; 其中 0 <= A,B <= 600000 ;
Output
对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO。
Sample Input
2 220 284 100 200
Sample Output
YES NO
满足的条件:220的约数1,2,4,5,10,11,22,44,55,110,然后用小脑袋算算它们的和是多少——刚好是284,
同样284的约数1,2,4,71,142,它们的和是多少-刚好是220,这不是巧合,据说,毕达哥拉斯(Pythagoras, 希腊文Πυθαγόρας,约前580年—前500年)的一个门徒向他提出这样一个问题:“我结交朋友时,存在着数的作用吗?”毕达哥拉斯毫不犹豫地回答:“朋友是你的灵魂的倩影,要象220和284一样亲密。”又说“什么叫朋友?就象这两个数,一个是你,另一个是我。”后来,毕氏学派宣传说:人之间讲友谊,数之间也有“相亲相爱”。从此,把220和284叫做“亲和数”或者叫“朋友数”或叫“相亲数”。这就是关于“亲和数”这个名称来源的传说。220和284是人类最早发现,又是最小的一对亲和数。还有2620,2924和3030,5564也是亲和数。
以下是我的代码:
#include <stdio.h>
int main()
{
int n,a,b,p,q;
scanf("%d",&n);
while(n--){
scanf("%d%d",&a,&b);
p=0;
for(int i=1;i<a;i++){
if(a%i==0)
p=p+i;
}
q=0;
for(int j=1;j<b;j++){
if(b%j==0)
q=q+j;
}
if(a==q&&b==p)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}