📅  最后修改于: 2023-12-03 15:22:51.259000             🧑  作者: Mango
原始性测试是一个判断一个数是否为质数的算法。第三组原始性测试,也称米勒-拉宾算法(Miller-Rabin),是最常用的原始性测试算法之一。它的特点是简单易懂、实现简单、速度快。相较于传统的试除法,它在实际应用中更为广泛。
米勒-拉宾算法基于的数论结论是费马小定理:对于任何质数$p$和整数$a$,有$a^{p-1} \equiv 1 \pmod{p}$。利用费马小定理可以得到一个随机数$a$的$p-1$次方模$p$的余数,它要么等于1,要么等于-1(也就是$p-1$),如果$a^{p-1} \not \equiv 1 \pmod{p}$ 且 $a^{(p-1)/2} \not \equiv \pm 1 \pmod{p}$ 那么$p$一定是合数。
这个算法要使用一个随机选取的整数$a$,因为对于大部分合数不止有一个符合以上条件的整数,随机选取更能保证准确性。
重复进行多次以上过程,即可大大提高正确性。