编程语言
首页 > 编程语言> > 二次剩余与 Cipolla 算法

二次剩余与 Cipolla 算法

作者:互联网

二次剩余

对于 \(P,n\),若存在 \(x\),满足:

\[x^2≡n\pmod p \]

则称 \(n\) 为模 \(P\) 意义下的二次剩余。

勒让德符号

定义如下:

\[\left(\frac{n}{p}\right)= \begin{cases} 1,&n\text{ 在模 $p$ 意义下是二次剩余}\\ -1,&n\text{ 在模 $p$ 意义下是非二次剩余}\\ 0,&n\equiv0\pmod p \end{cases} \]

欧拉判别准则

对于勒让德符号,有:

\[\left({n\over p}\right)\equiv n^{p-1\over 2}\pmod{p} \]

证明:

若 \(n≡0\pmod p\),显然该式子成立。

若 \(n\) 在模 \(p\) 意义下是二次剩余,即存在 \(x^2≡n\pmod p\),那么就有 \(x^{p−1}≡1\pmod p\),根据费马小定理显然 \(x\) 存在。

若 \(n\) 在模 \(p\) 意义下是二次非剩余,我们仍假设存在 \(x^2≡n\pmod p\),从而有 \(x^{p−1}≡−1\pmod p\),由费马小定理,显然 \(x\) 不存在。

标签:剩余,在模,意义,二次,pmod,算法,right,Cipolla
来源: https://www.cnblogs.com/A-Quark/p/16525958.html