随笔 - 531  文章 - 0  评论 - 3  阅读 - 10215 

 

复制代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=5e4;
int b[N+2], pm[N+2],tot=0;

 void init(){
     b[1]=1;
     for(int i=2;i<=N;i++){
         if(b[i]) continue;
         pm[++tot]= i; 
         for(int j=2;j*i<=N;j++) b[j*i]=1;
     }
 }
 int chk(int a,int b){
     if(a==0) return 0 ;
     int num = a*a+ b*b*2;
     
     for(int i=1;i<=tot && pm[i]<num;i++)
         if(num%pm[i]==0) return 0;
     
     return 1;
 }
 signed main(){
     init() ;
      int ts;
       cin>>ts;
  while (ts--) {
    int a, b;
    cin>>a>>b;
    printf("%s\n",chk(a,b)?"Yes":"No");
  }
 }
复制代码

 

posted on   towboat  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示