今天看了一下Miller-Rabin素数检测的算法,总结了一下,希望这篇博客对你们有帮助。
先说几个理论基础:
1. 费马小定理:假如p是质数,a是整数,且a、p互质,那么a的(p-1)次方除以p的余数恒等于1,即:a^(p-1)≡1(mod p).
但是反过来却不一定成立,就是说,如果a、p互质,且a^(p-1)≡1(mod p),不能推出p是质数,比如Carmichael数。
2. 二次探测定理:如果p是一个素数,0<x<p,则方程x^2≡1(mod p)的解为x=1或x=p-1。
3. 模运算的规则:(a*b)%n=(a%n * b%n)%n<