给你一堆定义,问你在那个定义下,<p,q>是不是素数。其实那堆定义都不用管,只要看最下面给你的提示即可。

根据,只要把m^2+n^2当一个整体,去枚举(p^2+q^2)的约数即可,然后再枚举m,

这样的枚举出来是必要的,然后再根据这个充要条件判一下即可。

#include<cstdio>
#include<cmath>
using namespace std;
const double EPS=0.00000001;
int T;
int p,q;
bool check(int i){
for(int M=1;M*M<=i;++M){
int N=(int)(sqrt(i-M*M)+0.5);
if(fabs(sqrt(i-M*M)-(double)N)<EPS){
if((M*p+N*q)%(M*M+N*N)==0 && (M*q-N*p)%(M*M+N*N)==0){
return 0;
}
}
}
return 1;
}
int main(){
scanf("%d",&T);
for(;T;--T){
scanf("%d%d",&p,&q);
int ppqq=p*p+q*q;
for(int i=2;i*i<=ppqq;++i){
if(ppqq%i==0){
if(i*i!=ppqq){
if(!check(i)){
puts("C");
goto OUT;
}
}
else{
if(!check(i) || !check(ppqq/i)){
puts("C");
goto OUT;
}
}
}
}
puts("P");
OUT:;
}
return 0;
}

最新文章

  1. wex5中的星星评分
  2. Electronic Payment App analysis
  3. 嵌入式Linux驱动学习之路(二)u-boot体验
  4. BZOJ 1045 题解
  5. oracle 游标示例
  6. TP常用函数
  7. JavaFX(二)自定义窗口标题栏
  8. Tomcat问题笔记
  9. MVC中一般为什么用IQueryable而不是用IList
  10. poj 2566 Bound Found(尺取法 好题)
  11. H264源码分析(二)
  12. 删除Lb重复的数,用La输出(顺序表)
  13. MFC TCHAR 和CHAR相互转换
  14. TestNG操作详解
  15. 【NOIP】OpenJudge - 15:银行利息
  16. SQLMap安装步骤
  17. JAVA核心技术I---JAVA基础知识(时间类)
  18. 改善Python 程序的 91 个建议
  19. JavaScript大杂烩5 - JavaScript对象的若干问题
  20. redis 五种数据结构详解(string,list,set,zset,hash),各种问题综合

热门文章

  1. vue router mode 设置&quot;hash&quot;与&quot;history&quot;的区别
  2. vue_真机调试页面
  3. bASE--Risk
  4. 用python玩微信(聊天机器人,好友信息统计)
  5. perl中的默认变量与Z/map介绍
  6. api文档工具
  7. JavaScript知识点的总结
  8. 【Spring事务的事务属性】
  9. .NET Core、.NET Standard、Xamarin和.NET Framework对比
  10. leetcode 之Valid Palindrome(26)