勒让德符号
$$
\large{ \left( \frac{n}{p} \right) =
\begin{cases}
1, &n \text{在模 $ p $ 意义下的二次剩余}\\
-1, &n \text{在模 $ p $ 意义下的非二次剩余}\\
0, &n \equiv 0 (\bmod p)
\end{cases} }
$$
即:
$$
\large{ \left( \frac{n}{p} \right) \equiv n^{\frac{p - 1}{2}} (\bmod p) }
$$
定理
$$
\large{ n^2 \equiv (p - n)^2 } \\
\large{ \text{$ p $ 的二次剩余和二次非剩余的个数均为 $ \frac{p - 1}{2} $ (除 $ 0 $)} }
$$
流程
- 随机找一个 $ \left( \frac{a^2 - n}{p} \right) = -1 $ ,令 $ \omega = \sqrt{a^2 - n} $ 。
- 合法解 $ x \equiv (a + \omega)^{\frac{p + 1}{2}} (\bmod p) $ 。
过程中实数运算需要用结构体维护正数部分和根号部分。
理论可以见 > here <。
1 | namespace Math { |