#include <iostream>
using namespace std;
static inline unsigned long long qpow(unsigned long long base,unsigned long long pow_time,unsigned long long mod){
unsigned long long ret = 1;
while(pow_time){
if(pow_time&1) ret =(ret*base)%mod;
pow_time>>=1;
base*=base;
}
return ret;
}
int main(){
int a,b,p;
cin >> a >> b >> p;
cout << a << "^" << b << " mod " << p << "=" << qpow(a,b,p);
}
网上找的快速幂模板,改了一下