思路:题意就是求哪两个数各自除了本身的约数之和正好是彼此,这一对数就称之为亲和数。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner a=new Scanner(System.in);
int M=a.nextInt();
while(a.hasNext())
{
int A=a.nextInt();
int B=a.nextInt();
if(A>=0&&B<=600000) //题意范围
{
int num=0,sum=0;
for(int i=1;i<A;i++) //除了本身其他约数用for遍历并相加
{
if(A%i==0)
num+=i;
}
for(int j=1;j<B;j++) //除了本身其他约数用for遍历并相加
{
if(B%j==0)
sum+=j;
}
if(num==B&&sum==A) //判断然后输出即可
System.out.println("YES");
else
System.out.println("NO");
}
}
}
}
若有错误,还请指正。