分治思想
时间复杂度为logb次
ll fast_pow(ll a, ll b, ll mod){
ll ans = 1;//答案初始化为1
a = a % mod;//乘法取模运算性质
while(b > 0){
if(b & 1)//b是奇数,被2整除不了,还需要再乘a的一次幂
ans = ((long long)ans * a) % mod;
b = b >> 1;//继续分解
a = ((long long)a * a) % mod;//把b分解成若干个2,再将a^2乘在一起
}
return ans;
}