设为首页 加入收藏

TOP

问题一百三十二:自然数对
2014-11-23 22:13:07 来源: 作者: 【 】 浏览:1
Tags:问题 一百三十二 自然

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

\

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇问题一百三十:字符矩阵排序 下一篇问题一百三十五:银行ATM

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: