#define LL long long
LL pow_mod(LL a, LL b, LL p) //a^b%p
{
LL ret = 1;
while(b)
{
if(b & 1) ret = (ret * a) % p;
a = (a * a) % p;
b >>= 1;
}
return ret;
}
2. 递推写法(其实和上面一样)
#define LL long long
LL pow_mod(LL a, LL b, LL p)
{
LL ret = 1;
while(b)
{
if(b % 2) ret = (ret * a) % p;
a = (a * a) % p;
b /= 2;
}
return ret;
}
3.然后递归写法
LL pow_mod(LL a, LL b ,LL p){
if(b == 0) return 1;
LL ret = pow_mod(a, b/2, p);
ret = (ret * ret) % p;
if(b % 2 == 1) ret = (ret * a) % p;
return ret;
}