加载中...

[学习笔记] MillerRabbin

素数

Miller-Rabbin算法

作用:在\(O(1)\)时间内判断一个数是否是素数.

根据费马小定理,即若\(a,p\in\mathbb{Z^+},a\perp p\),则\(a^{p-1}\equiv1(\mod p)\),我们可以在\([2,n)\)中随机选取若干个数,判断是否成立.一般选择\(8\)个.

但是存在一类和数,在\([2,n)\)中任意的整数\(a\)都满足上述式子,所以我们要对上述式子进行一个改进,使它拥有一个更高的正确率.

引理

如果\(p\)是奇素数,则\(x^2\equiv1(\mod p)\)的解为\(x\equiv 1(\mod p)\)\(x\equiv p-1(\mod p)\).

证明易证.

我们考虑一个整数\(a\)来对\(n\)进行Miller Rabin验证. 设\(n-1=p\cdot2^q\),则我们先算出\(a^p\),然后再不断自乘,并在此过程中用引理进行验证.

posted @ 2022-03-22 21:58  ZQYang  阅读(46)  评论(0)    收藏  举报