对于求 a b m o d P a^bmodP abmodP,当a,b非常大的时候,我们使用longlong也无法存下,这时候就需要a随时对P取模
- 快速幂带mod算法如下
typedef long long ll;
ll fast_power_mod(ll a,ll b,ll c){
ll ans = 1;
a %= c;//不可少,防止a*a溢出,这里会卡数据
while(b){
if(b & 1){
ans = (ans*a)%c;
}
a = (a*a)%c;
b /= 2;
}
return ans;
}
- 无mod版
typedef long long ll;
ll fast_power_mod(ll a,ll b){
ll ans = 1;
while(b){
if(b & 1){
ans = (ans*a);
}
a = (a*a);
b /= 2;
}
return ans;
}```