最简单的通过把数分解的方式,进行先求模。有效降低数据的大小,以免在幂运算时爆long long。
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll mod;
ll quick_mod(ll b, ll p){
if (p == 1) return b % mod;
ll x = quick_mod(b, p / 2);
if (p % 2 != 0) return b % mod * x % mod * x % mod;
else return x % mod * x % mod;
}
int main()
{
ll b, p; cin >> b >> p >> mod;
cout << quick_mod(b, p);
return 0;
}