a^b=?
ex:a^22=?
22==10110
每一轮a的值
a^1---------------------------a1
a^2---------------------------a2
a^4---------------------------a3
a^8---------------------------a4
a^16-------------------------a5
则a^22==a5*a3*a2(22二进制位上是1)
ll cal_pow(ll a,ll b){
ll ans=1;
while(b)
{
if(b%2){ //也可以(n&1),求二进制最低位是否为1
ans=ans*a%mod;
}
a=a*a%mod;
b>>=1;
}
return ans;
}