Description
知道2个自然数A,B,如果A+B,A-B都是平方数,那么A,B就是自然数对。要求写程序判断给定的2个数A,B是否为自然数对。
Input
第一行有1个整数T,表示有T组测试数据。第二行~第T+1行,每行有2个数据A,B,其中0<=A+B<=2^31且A>B。
Output
对于每组测试数据输出一行,包含"YES"或者"NO"。"YES"表示该数对是自然数对,否则输出"NO"。
Sample Input
2
17 8
3 1
Sample Output
YES
NO
#include <stdio.h> #include <math.h> int square(int m); int main() { int n; int a; int b; scanf("%d", &n); while(n--) { scanf("%d %d", &a, &b); if(square(a-b) && square(a+b)) { printf("YES"); } else { printf("NO"); } if(n>0) { printf("\n"); } } return 0; } int square(int m) { int i; int flag=0; i=sqrt(m); if(i*i==m) { flag=1; } return flag; }