long long fast_pow( long long a, long long b, int p ) {
long long ans = 1;
while( b ) {
if ( b & 1 ) //若b当前最右位为1
ans = ans * a % p;
a = a * a % p; //(a^(2^k))^2=a^(2^(k+1))
b >>= 1; //b向右位移
}
return ans;
}
乘法快速幂
最新推荐文章于 2023-03-22 19:48:43 发布