1912: 亲和数
Time Limit: 1 Sec Memory Limit: 64 MB Submit: 375 Solved: 184 [Submit][Status][Web Board]Description
如果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。 你的任务就编写一个程序,判断给定的两个数是否是亲和数
Input
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含两个整数A,B; 其中 0≤A,B≤99999。
Output
对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO。
Sample Input
2
220 284
100 200
Sample Output
YES
NO
#include<stdio.h> int main() { int m,n,p,i; int sum1,sum2; scanf("%d",&p); for(i=0;i<p;i++) { scanf("%d %d",&m,&n); sum1=sum(m); sum2=sum(n); if(sum1==n&&sum2==m) printf("YES\n"); else printf("NO\n"); } return 0; } int sum(int n) { int i,k; int a[1000]; int sum=0,j=0; for(i=1;i<n;i++) { if(n%i==0) { a[j++]=i; k=j; } } for(j=0;j<k;j++) { sum=sum+a[j]; } return sum; }