两种求幂函数取模的方法
一、快速幂
int quickM(long long x, long long p, int mod) {
x %= mod;
LL ans = 1;
while (p) {
if (p % 2 == 1)
ans = ans * x % mod;
x = x * x % mod;
p /= 2;
}
return ans;
}
二、二分法
int pow_mod(int a,int n,int mod){
if(n==0){
return 1;
}
int x=pow_mod(a,n/2,mod);
long long ans=(long long)x*x%mod;
if(n%2==1){
ans=ans*a%mod;
}
return (int)ans;
}
浙公网安备 33010602011771号