这就是一道快速幂模板题。
求%m,快速幂的思想就是:如果
b是奇数,那么就等于a*。相反,如果b是偶数,那么就等于*。
代码如下:
#include <bits/stdc++.h>
using namespace std;
long long a, b, k;
long long BinaryPow(long long a, long long b, long long k)
{
if(b == 0) return 1;
//if b is an odd number
if(b % 2 == 1) return (a % k) * BinaryPow(a, b-1, k) % k;
//else if b is an even number
long long mul = BinaryPow(a, b/2, k) % k;
return (mul % k) * mul % k;
}
int main()
{
cin >> a >> b >> k;
cout << BinaryPow(a, b, k) % k << endl;
return 0;
}