当前位置:编程学习 > C/C++ >>

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

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语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,