二次剩余
不会证明
定义
对于 \((a,n)=1\),如果存在 \(x\in \mathbb{Z}\),使得 \(x^2\equiv a\pmod n\),则称 \(a\) 为 \(n\) 的二次剩余,否则称 \(a\) 为模 \(n\) 的二次非剩余。
说人话就是:如果 \(a\) 在模意义下能被开平方根,那么说 \(a\) 是模 \(n\) 的二次剩余。
下文只考虑模数为奇质数的情况,记作 \(p\)。\(a\) 是模 \(p\) 的二次剩余简记为 \(a\) 是二次剩余。
如果 \(a\) 是二次剩余,那么其有两个根,互为相反数。
欧拉判别
对于 \((a,p)=1\),
由费马小定理可以推知:\(a^{\frac{p-1}{2}}\equiv \pm 1\pmod p\)
-
\(a^{\frac{p-1}{2}}\equiv 1\pmod p\) 等价于 \(a\) 是二次剩余。
-
\(a^{\frac{p-1}{2}}\equiv -1\pmod p\) 等价于 \(a\) 是二次非剩余。
Cipolla
解 \(x^2\equiv n\pmod p\)
随机一个 \(a\),使得 \(a^2-n\) 是二次非剩余。
引入类似于虚数单位的一个对象 \(i\),满足 \(i^2\equiv a^2-n\pmod p\),则有结论 \((a+i)^{\frac{p+1}{2}}\) 为该方程的两个根,这两根互为相反数,且虚部均可以证明为 \(0\)。
写一个复数类模拟一下即可。

浙公网安备 33010602011771号