一个问题:
对于给定a,b求
aaaa..a(modp)
(其中有b个a)。
对于这个问题,有两个理解方法。
1.如果是从下向上计算,那么它的式子其实就是:
aab−1
那么我们对上面的式子的指数可以用费马小定理通过 mod p−1 来得到一个较小指数,然后再进行一次快速幂即可。
复杂为 O(log2p+log2(p−1))
2.如果是从上向下计算,那么就可以通过扩展欧拉定理:
am≡amin(m,(m mod ϕ(p))+ϕ(p))(modp)
不断的递归指数,直到 ϕ(p)=1 时,返回1.
欧拉函数可以递归时算。