Problem 09. 亲和数
题目简述:
如果两个数互为另一个数的真约数之和,则这两个数就是亲和数,判断给定的两个数是否是亲和数
解题思路:分别用两个变量表示给定数的真约数之和。另外n的真约数只需判断n用[1,n-1]取余后是否为0。
源代码:
#include<iostream>
using namespace std;
int main()
{
int n;
long long int a,b,sum1,sum2;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a>>b;
sum1=0;
sum2=0;
for(int j=1;j<a;j++)
{
if(a%j==0)//判断j是否为a的真约数
sum1+=j;
}
for(int j=1;j<b;j++)
{
if(b%j==0) //判断j是否为b的真约数
sum2+=j;
}
if(sum1==b&&sum2==a)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}