n次剩余O(logp)做法
Solwek
·
·
休闲·娱乐
给你三个正整数 $a,n,p$,你需要求出一个 $b$,使得
$$a\equiv b^n\pmod p$$
考虑两边同时进行 $n$ 在 $\varphi(p)$ 意义下的逆元次方,那么此时这个式子变成了
$$a^{\text{inv}(n)}\equiv b\pmod p$$
那么此时只需要一个快速幂即可解决问题,时间复杂度 $O(\log p)$。
这种做法时间复杂度十分优秀,并且适用性广泛,只需要保证 $\varphi(p)$ 为质数即可,甚至不需要保证 $p$ 为质数。