@Yezi.press
快速幂
计算 a 的 b 次幂对 m 取模的结果,时间复杂度 O(log b)
算法模板发布于 2026/08/21#快速幂
C++22 行393 Bytes
using ll = long long;
ll quick_pow(ll a, ll b, ll m) {
ll ans = 1 % m;
ll w = a;
while (b) {
if (b % 2 == 1) ans = ans * w % m;
w = w * w % m;
b /= 2;
}
return ans;
}
// 位运算版
ll qpow(ll a, ll b, ll p) {
ll ans = 1 % p;
while (b) {
if (b & 1) ans = ans * a % p;
a = a * a % p;
b >>= 1;
}
return ans;
}