问题一百三十二:自然数对
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 <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;
}
#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;
}
补充:软件开发 , C语言 ,