\(\color{#0066ff}{ 题目描述 }\)

判定输入的数是不是质数。

\(\color{#0066ff}{输入格式}\)

若干行,一行一个数 \(x\)。

行数不超过 \(10^5\)。

\(\color{#0066ff}{输出格式}\)

对于输入的每一行,如果 \(x\) 是质数输出一行 \(Y\),否则输出一行 \(N\)。

\(\color{#0066ff}{输入样例}\)

1
2
6
9
666623333

\(\color{#0066ff}{输出样例}\)

N
Y
N
N
Y

\(\color{#0066ff}{数据范围与提示}\)

\(1≤x≤10^{18}\)。

\(\color{#0066ff}{ 题解 }\)

就是个Miller Rabbin的板子题

详解

#include<bits/stdc++.h>
#define LL long long
LL in() {char ch; LL x = 0, f = 1;while(!isdigit(ch = getchar()))(ch == '-') && (f = -f);for(x = ch ^ 48; isdigit(ch = getchar()); x = (x << 1) + (x << 3) + (ch ^ 48));return x * f;
}
int prime[] = {2, 3, 5, 7, 11, 61, 24251};
LL msc(LL x, LL y, LL mod) {x %= mod;y %= mod;LL c = (long double)x / mod * y;LL d = x * y - c * mod;return ((d % mod) + mod) % mod;
}
LL ksm(LL x, LL y, LL mod) {LL re = 1LL;while(y) {if(y & 1) re = msc(re, x, mod);x = msc(x, x, mod); y >>= 1;}return (re + mod) % mod;
}
bool judge(LL a, LL p) {LL s = p - 1;while(!(s & 1)) s >>= 1;LL k = ksm(a, s, p);while (s != p - 1 && k != 1 && k != p - 1) k = msc(k, k, p), s <<= 1;return (k == p - 1) || ((s & 1));
}
bool judge(LL n) {if(n == 1) return false;for(int i = 0; i < 7; i++) {if(n == prime[i]) return true;if(n % prime[i] == 0) return false;if(!judge(prime[i], n)) return false;}for(int i = 1; i <= 10; i++) if(!judge(2 + rand() % (n - 2), n)) return false;return true;
}int main() {LL n;while(~scanf("%lld", &n)) printf(judge(n)? "Y\n" : "N\n");return 0;
}

转载于:https://www.cnblogs.com/olinr/p/10305930.html

loj #143. 质数判定相关推荐

  1. Loj#143-[模板]质数判定【Miller-Rabin】

    正题 题目链接:https://loj.ac/p/143 题目大意 给出一个数ppp,让你判定是否为质数. 解题思路 Miller−RabinMiller-RabinMiller−Rabin是一种基于 ...

  2. Miller Rabin质数判定模板(2)

    首先介绍一个相关的引理. 和 总是得到1,称这两个数为1的"平凡平方根".当p是素数且p>2时,不存在 的"非平凡平方根".为了证明该引理,我们假设x是 ...

  3. 2021-06-27 记录最近刷过的数论题(整除分块,MillerRabin素性检测,积性函数,重数)

    记录一下最近刷过的数论题 文章目录 LOJ 143. 质数判定 AcWing 197. 阶乘分解 AcWing 199. 余数求和 LOJ #124. 除数函数求和 1 LOJ #125. 除数函数求 ...

  4. miller_rabin 证明与实现

    143. 质数判定__模板题链接 前置知识 费马小定理:ppp是质数,则对于任意的aaa,aaa与ppp互质,则有ap−1≡1(modp)a ^ {p - 1} \equiv 1 \pmod {p}a ...

  5. 质数,约数(数论) AcWing算法课

    SummarySummarySummary 质数的判定 : 1.试除法O(n)O(\sqrt{n})O(n​) 分解质因数 : 1.试除法O(n)O(\sqrt{n})O(n​) 2.当一系列数相乘( ...

  6. 2022.6.2 质数(素数)与合数

    一.定义: 1.质数():如果p除了显然约数(1 和 p)外没有其他约数,那么称p为素数(不可约数). 2.合数():a不是素数,则称a为合数. 二.性质: 1.如果a为合数,则必可以拆分为a=b*c ...

  7. 【数论】因数与倍数(一)质数与合数

    目录 质数与合数 一.概念 1.质数 2.合数 二.质数判定 1.O(n)O(\sqrt{n})O(n​)算法,暴力枚举 三.批量求质数 1.埃氏筛法 2.欧拉线性筛 质数与合数 一.概念 1.质数 ...

  8. 第四章 数学知识 质数相关

    1.质数判定 1. 问题解释 所谓质数判定,就是给定一个数,判断一下该数是否为质数. 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也 ...

  9. 【数论基础】质数相关基础算法

    质数 什么是质数(素数) 质数就是一个大于1的整数,除了1和它本身以外,不能被其他自然数整除 注意:1.0不是质数 质数是从2开始的 一些简单的性质 质数x的约数只有1和x; 任何一个正整数,要么是质 ...

最新文章

  1. [html] 当img标签中的src图片加载失败时,怎么让它变得更美观呢?
  2. java授查 非授查异常_java检查异常与非检查异常
  3. [OS] 远程启动计划任务时以管理员身份运行
  4. UI设计素材模板|wireframe线框图设计要点
  5. 快速接入阿里云应用配置管理工具 轻松开启企业效率新时代
  6. JS脚本defer的作用
  7. 文本检查点web_reg_find和web_find两个函数的区别
  8. 人脸对齐(六)--ERT算法
  9. paip.图片搜索工具总结
  10. 沟通:如何用沟通解决80%的工作问题?
  11. 黑客防线 2000~2006 NPM、PYPI、DockerHub 备份
  12. (转)格拉布斯准则(Grubbs Criterion)处理数据异常
  13. “体验版”PyTorch 2.0备受瞩目,它到底好在哪里?
  14. OpenCV开发笔记(四十九):红胖子8分钟带你深入了解轮廓识别(图文并茂+浅显易懂+程序源码)
  15. grasp设计模式应用场景_设计模式 GRASP GoF
  16. CDH问题汇总之——ERROR main:com.cloudera.server.cmf.bootstrap.EntityManagerFactoryBean: Tables have unsuppo
  17. Linux下链接库出现的undefined reference问题总结
  18. LT8522EX 是 Lontium 的矩阵开关芯片基于两路输入,输出 (VGA 和 HDMI)
  19. Verilog基础知识3(门控时钟及FPGA时钟使能处理)
  20. 网络协议—三要素与五层网络协议

热门文章

  1. 我的MVP,来的那么“糊涂”(2009.4)
  2. 计院生活--第二章 深入虎穴(下)
  3. vue 传递多行数据_vue 数据传递的方法
  4. TZOJ 4865 统计单词数(模拟字符串)
  5. 查看Linux系统软硬件信息
  6. Bootstrap验证控件的使用
  7. Java Collection
  8. UVa 1393 (容斥原理、GCD) Highways
  9. 运算符优先级和结合性
  10. Django ORM 中的批量操作