题目链接:点击查看

题目大意:给出一组a和b,判断a+b*sqrt(-2)是不是高斯素数

题目分析:对于一般的复数a+b*i,我们判断其为高斯整数的条件为a和b都为整数即可

而判断其为高斯素数的条件是,它不能再分解为其他高斯整数的乘积(0,1,-1除外),因为0,-1和1不能被视为高斯素数,但在这个题目中sqrt(-2)是高斯素数

所以高斯素数有以下两个性质:

  1. 如果一个素数,那么该素数p就是一个高斯素数
  2. 对于高斯整数a+b*j,如果该高斯整数的范式:a*a+b*b是一个素数,那么a+b*j是一个高斯素数

现在回到这个题目上来,这个题目将sqrt(-1)变为了sqrt(-2),也就是说分为了两种情况讨论:

  1. a==0时,则a+b*sqrt(-2)一定不是高斯素数,因为b*sqrt(-2)肯定可以分解
  2. a!=0时,则判断其范式(a*a+b*b*2)是否是素数即可

因为这个题目中的b保证不等于0了,所以就不用判断这个条件了

实现代码:用试除法模拟即可

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=15;bool is_prim(int x)
{for(int i=2;i*i<=x;i++)if(x%i==0)return false;return true;
} int main()
{
//  freopen("input.txt","r",stdin);int w;cin>>w;while(w--){int a,b;scanf("%d%d",&a,&b);if(a==0){printf("No\n");continue;}if(is_prim(a*a+b*b*2))printf("Yes\n");elseprintf("No\n");}return 0;
}

UVA - 1415 Gauss Prime(高斯素数)相关推荐

  1. UVA 1415 - Gauss Prime(数论,高斯素数拓展)

    UVA 1415 - Gauss Prime 题目链接 题意:给定a + bi,推断是否是高斯素数,i = sqrt(-2). 思路:普通的高斯素数i = sqrt(-1),推断方法为: 1.假设a或 ...

  2. 【学习笔记】高斯整数、高斯素数、费马平方和(全部相关概念及例题详解)《初等数论及其应用》

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 以下内容摘自 我的文章:算法竞赛中的数论问题 - 数论全家桶(信奥 / 数竞 / ACM)作者孟繁宇, ...

  3. Python:实现gauss easte高斯复活节日期算法(附完整源码)

    Python:实现gauss easte高斯复活节日期算法 import math from datetime import datetime, timedeltadef gauss_easter(y ...

  4. UVA 12101 Prime Path (素数筛+BFS)

    题意:给一个四位数的素数,求通过几步变换(一次只能换一个位置的数,且变换过程中只能出现素数)变为目标四位数 分析:素数筛法+BFS,BFS时更换一个数字如果符合条件就加入队列 代码: #include ...

  5. c语言判断素数squ,poj1811——Prime Test//素数判断+整数分解因子

    题意:给定N,如果N为素数,输出"Prime",否则输出其最小因子. 思路:用miller_rabin判断素数,pollardRho用于整数因子的分解.整数因子分解还有一个更快的算 ...

  6. prime sieve 素数筛

    index > Algebra > prime sieve 主要内容 本篇只收录较快的线性筛法,作用就是求 2 到 n 的所有素数,顺便得到判断数组. 单纯求素数,标记所有合数.(常用) ...

  7. Poj 1811 Prime Test 素数测试 Miller-Rabin 与 整数的因子分解 Pollard rho

    随机化算法,想尝试自己写一下,最后还是变成了抄代码... 代码参考了:POJ 1811 Prime Test(大素数判断和素因子分解) - kuangbin - 博客园 学习链接: Miller-Ra ...

  8. UVA - 524:Prime Ring Problem

    Prime Ring Problem 来源:UVA 题目 A ring is composed of n (even number) circles as shown in diagram. Put ...

  9. UVa 11466 - Largest Prime Divisor

    題目:給你一個整數n(不超過14位).求出他的最大的素數因子.假设仅仅有一個素數因子輸出-1. 分析:數論. 直接打表計算10^7內的全部素數因子,然後用短除法除n.記錄最大的因子就可以. 假设最後下 ...

最新文章

  1. SAP PM 入门系列7 - 常用Function Modules
  2. uva11584 Partitioning by Palindromes
  3. UVA10881蚂蚁
  4. python打包安卓的方法_30个你想打包带走的Python技巧(下)
  5. Redis源码分析(一)redis.c //redis-server.c
  6. 第一次冲刺团队绩效评估
  7. Delete带有子查询的sql优化,改为innerJoin解决
  8. android java调用c_Android JNI简单实例(android 调用C/C++代码)
  9. dalsa工业相机8k参数_偏振光相机3——偏振应用
  10. 1145: 零起点学算法52——数组中删数II
  11. Linux系统启动过程分析 -转
  12. docker安装mysql以及设置navicat远程访问
  13. SIGIR 2020最佳论文公布,清华大学揽多个奖项,大三学生摘得最佳短论文奖
  14. 如何选择视频编码格式
  15. c语言函数base,c中base的用法
  16. Titan XP值不值?一文教你如何挑选深度学习GPU
  17. 下厨房app竞品分析(产品和用户)
  18. 提供优质客户服务的5种方法
  19. 《An Industrial-Strength Audio Search Algorithm》译文
  20. 新知实验室:视频应用

热门文章

  1. 存储过程语法 - 变量
  2. Nginx基础配置实例配置实现
  3. #{}和${}的区别是什么?
  4. 平衡二叉树(AVL Tree)(左旋、右旋)
  5. 代理模式中的动态代理
  6. Elastic-Job发展历史
  7. SpringMVC的请求-文件上传-多文件上传的代码实现
  8. Feign-1 Feign的简介及基础使用
  9. dicom格式怎么转换_QQ音乐下载的歌曲怎么转换MP3?音频转换格式详细教程
  10. php 删除硬链接,为什么要用软链接硬链接