二次剩余 Cipolla算法

欧拉准则

\(a\)\(p\)的二次剩余等价于\(a^{\frac{p-1}{2}}\equiv 1\pmod p\)\(a\)不是\(p\)的二次剩余等价于\(a^{\frac{p-1}{2}}\equiv -1\pmod p\)

Cipolla

\(a^2-n\)不是\(p\)的二次剩余,则\(p\)的二次剩余为\((a+\sqrt{a^2-n})^\frac{p+1}{2}\)

因此我们随机\(a\)即可。\(\sqrt{a^2-n}\)的计算用复数。

时间复杂度约为\(O(\log^2p)\)

posted @ 2018-10-03 22:09  Utoрia  阅读(381)  评论(0编辑  收藏  举报