BZOJ 3884——欧拉降幂和广义欧拉降幂
理论部分 欧拉定理:若 $a,n$ 为正整数,且 $a,n$ 互质,则 $a^{\varphi (n)} \equiv 1(mod \ n)$. 降幂公式: $$a^b= \begin{cases} a^{b \% \varphi(p)} & gcd(a,p)=1 \\ a^b & gcd(a,p)\neq 1,b < \varphi (p) \\ a^{b\% \varphi (p) + \varphi (p)} & gcd(a,p)\neq 1,b \geq \varphi (p) \end{cases}$$ 题目 求 $2^{2^{2...}} \ mod \ p$ 的值,$T$组询问。$T \leq 1000, p \leq {10}^7$ 分析: 首先,必须明确模意义下的无穷与真正的无穷是有区别的,(不然无穷的怎么求值 由降幂公式,当 $x \geq \varphi (p)$ 时(这道题中 $x$ 一直为2的无穷次方,肯定大于 $\varphi(p)$), $$a^x \equiv a^{x \% \phi (p) + \varphi (p)}(mod \ p)$$ 所以,令 $f(p) = 2^{2^{2...}}(mod \ p)$,$f(1)=0$, $$\\f(p)=2^{(2^{2^{...}} mod \; \phi(p)) + \phi(p)}mod \;