快速幂取余
如何让计算机快速计算a的b次方,暴力求解要进行b次运算,而快速幂则只需要log2(b),可以大大提高执行效率。快速幂运算一般和取余运算一起出现。
给你三个整数 a,b,p 求解a的b次方modp。
#include using namespace std;typedef long long ll;const ll mod = 1e7;ll ksm(ll a, ll b, ll mod) { ll ans = 1, base = a; while (b != 0) { if ((b & 1) != 0) { ans = (ans * base) % mod; } base = (base * base) % mod; b >>= 1; } return ans;}int main() { long long a, b, p; cin >> a >> b >> p; long long m = ksm(a, b, p); cout << a << "^" << b << " " << "mod" << " " << p << "=" << m;}