日常经验, 计算,你需要把2乘4次吗? No
=4, =16,时间差不多是log(n)
特别的当幂次为奇数时要在乘上一项底数
ll Mpow(ll e, ll b, ll m ){
if (b==0) return 1;
T res = Mpow(e*e%m, b/2, m);
if (n & 1) res = res*e%m;
return res;
}
//非递归版本
ll Mpow(ll e,ll b,ll mod){
ll res=1;
while(b){
if(b&1)
res=res*e%mod;
e=e*e%mod;
b/=2;
}
return res;
}