1912: 亲和数

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;
}
原文地址:https://www.cnblogs.com/mjn1/p/8727117.html