N次剩余
给定 N,a,PN,a,PN,a,P,且 PPP 最好为质数
可以算出 xN≡a(mod p)x^N\equiv a(mod~p)xN≡a(mod p) 的解
首先可以算出 PPP 的原根 ggg
解方程 gy≡b(mod p)g^y\equiv b(mod~p)gy≡b(mod p),这个直接 BSGSBSGSBSGS
设 gz≡x(mod p)g^z\equiv x(mod~p)gz≡x(mod p)
那么 gza=gy(mod p)  ⟺  za≡y(mod φ(p))g^{za}=g^y(mod~p)\iff za\equiv y(mod~\varphi(p))gza=gy(mod p)⟺za≡y(mod φ(p)),这个直接 exgcdexgcdexgcd
无解在 BSGSBSGSBSGS 和 exgcdexgcdexgcd 的时候判掉,最后快速幂得到答案
二次剩余
求 x2≡n(mod p)x^2\equiv n(mod~p)x2≡n(mod p)的一个解 xxx,其中 ppp 为一个奇素数
有二次剩余的条件
np−12≡1(mod p)n^{\frac{p-1}{2}} \equiv 1(mod~p)n2p−1≡1(mod p)
证明
首先有 np−1≡1(mod p)n^{p-1}\equiv 1(mod~p)np−1≡1(mod p)
若存在一个解 aa