素数检验方法

一、费马小定理

如果 p 是一个素数,并且 a 是一个整数,满足 1<a<p,(即 a 与 p 互质)那么以下同余式成立:

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​

二、费马素数检验

如果存在一个整数 a,使得

​​​​​​​ ​​​​​​​

那么 n 一定不是素数

三、Carmichael

费马素数检验最大的缺陷在于存在一种特殊的合数

最小的卡迈克尔数是 561=3×11×17

因此,费马检验无法将561识别为合数。

四、欧拉准则

这里要用到先前文章(二次同余式和平方剩余)的勒让德符号

如果 p 是一个奇素数,并且 a 是一个与 p 互质的整数(即 gcd⁡(a,p)=1),那么

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​

结果为1, a 是模 p 的二次剩余 ;结果为-1,a 是模 p 的二次非剩余

五、欧拉拟素数检验

这个方法能够检测Carmichael!!!

六、Miller-Rabin强拟素数检验

这是目前最强大、最广泛使用的概率性素数检验算法

具体操作步骤可以参考: https://www.bilibili.com/video/BV1T44y1Z7Gx

相关推荐
Greedy Alg2 小时前
LeetCode 72. 编辑距离(中等)
算法
xinxingrs2 小时前
贪心算法、动态规划以及相关应用(python)
笔记·python·学习·算法·贪心算法·动态规划
秋邱2 小时前
驾驭数据洪流:Python如何赋能您的数据思维与决策飞跃
jvm·算法·云原生·oracle·eureka·数据分析·推荐算法
侯小啾2 小时前
【23】C语言 左移(<<) 与 右移(>>) 位运算符在处理像素中的应用
c语言·算法·位运算·右移·左移
搂鱼1145142 小时前
(dp 优化)洛谷 P14460 寻雾启示 题解
算法·图论
_OP_CHEN3 小时前
算法基础篇:(十一)贪心算法拓展之区间问题:从重叠到覆盖的最优解艺术
算法·贪心算法
钟智强3 小时前
线性映射(Linear Mapping)原理详解:机器学习中的数学基石
人工智能·算法·机器学习
福尔摩斯张5 小时前
C语言核心:string函数族处理与递归实战
c语言·开发语言·数据结构·c++·算法·c#
吗~喽6 小时前
【LeetCode】滑动窗口_水果成篮_C++
c++·算法·leetcode