题目描述
知道2个自然数A,B,如果A+B,A-B都是平方数,那么A,B就是自然数对。要求写程序判断给定的2个数A,B是否为自然数对。
输入
第一行有1个整数T,表示有T组测试数据。第二行~第T+1行,每行有2个数据A,B,其中0 < = A+B < = 2^31。A,B间的大小关系未知。
输出
对于每组测试数据输出一行,包含"YES"或者"NO"。"YES"表示该数对是自然数对,否则输出"NO"。
样例输入
2
17 8
3 1
样例输出
YES
NO
#include <stdio.h>
#include<math.h>
int main()
{
int x;
int c,d;
scanf("%d",&x);
while(x--){
int a,b;
scanf("%d %d",&a,&b);
float c,d;
c=sqrt(a+b);d=sqrt(a-b);
if(c==(int)c&&d==(int)d){
printf("YES\n");
}
else{
printf("NO\n");
}
}
return 0;
}