求两正方形面积之差是否为质数

题目描述

给两个正方形求不相交面积是否为质数(即大正方形的面积减去小正方形的面积是否为质数

输入输出格式

输入格式:

一个t t组数据 每行 两个数(n m<=10^14)

输出格式:

质数输出“YES”、 不是输出“NO”

题解:【智商题】

a^2-b^2=(a+b)(a-b)

第一步:判断a-b是否为1:是,接下一步;否,则为非质数;

第二步:判断a+b是否为质数;

#include<bits/stdc++.h>

using namespace std;

bool prime(long long  x){//判断是否为质数;是则返回0否则返回1;
	
   if(x==2) return 1;
   
   if(x%2==0) return 0;
   
   for(long long j=3;j*j<=x;j+=2){
   	
       if(x%j==0) return 0;
       
   }
   
   return 1;
   
}

int main(){
	
   long long t;
   
   cin>>t;
   
   while(t--){
   	
      long long  n,m;
      
      cin>>n>>m;
      
      if(n-m>1){
      	
         cout<<"NO"<<endl;
         
      }
	  
	  else{
	  	
         if(prime(n+m)){
         	
            cout<<"YES"<<endl;
            
         }
		 
		 else{
		 	
            cout<<"NO"<<endl;
            
         }
         
      }
      
   }
   
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值