原创滴博客~https://www.cnblogs.com/precious-ZPF/p/9481599.html
小编赶紧摘过来的,多看几遍向银家多学习学习QAQ
首先,在了解米勒-拉宾素性测试之前,我们要先了解费马小定理。
关于费马小定理就不再细说原理和证明了,应用非常广泛。
费马小定理中说 若p是质数 则有 a的(p-1)次方在(mod p)的情况下 恒等于1 数学表达式---> a^(p-1) ≡ 1 (mod p)
然后我们要注意: p若是质数 则满足费马小定理 但是 满足费马小定理 并不能证明p就是质数
有些数字 满足费马小定理,但是并不是质数 他们叫做伪质数(伪素数的个数是无穷的)
那么 知道了这些 算法就很好理解了
一个数 如果满足费马小定理 那么他很大几率就是素数了 但是还有可能不是
米勒-拉宾素性测试就是 令费马小定理中的a 分别等于多个数 然后拿每一个a去测试 n 若所有的测试 都满足费马小定理 那么n就是素数
通过快速幂 我们可以很快的检测是否满足费马小定理
在一定范围内 伪素数是有限的 只要选区恰当的a的值 呢们就可以保证这是一个确定性的算法 下面详细给出a的选择
if n < 1 373 653 a = 2 and 3.
if n < 9 080 191 a = 31 and 73.
if n