0%

快速幂

快速幂

1
2
3
4
5
6
7
8
9
10
11
//计算a的b次方mod m
long long binpow(long long a, long long b, long long m) {
a %= m;
long long res = 1;
while (b > 0) {
if (b & 1) res = res * a % m;
a = a * a % m;
b >>= 1;
}
return res;
}

根据费马小定理,如果 m 是一个质数,我们可以计算 $a^{b\ mod\ (m-1)}$ 来加速算法过程