记 n!n^!n! 为 nn−1n−2...1n^{n-1^{n-2^{...^1}}}nn−1n−2...1,给定 nnn 与模数 ppp,求 n!n^!n! modmodmod ppp 的值。(1≤n≤1061 \le n \le 10^61≤n≤106, 1≤p≤10121 \le p \le 10^{12}1≤p≤1012)。
不难想到光速幂与扩展欧拉定理,这也就意味这我们要预处理出 φ(p)\varphi(p)φ(p) 与 φ(φ(p))\varphi(\varphi(p))φ(φ(p))...,那么现在是否存在在 O(p)O(\sqrt{p})O(p) 的复杂度内预处理的做法呢?