问题一百三十二:自然数对

2014-11-23 22:13:07 · 作者: · 浏览: 4

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

[plain]
#include
#include

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;
}

#include
#include

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;
}

\