#include <bits/stdc++.h>
using namespace std;
int main() {
long long a,b,c;
cin>>a>>b>>c;
cout<<a<<"^"<<b<<" mod "<<c<<"=";
if(b==0) { cout<<0; return 0;}
long long ans=1;
a=a%c;
while(b>0){
if(b%2==1) ans=(ans*a)%c;
b=b/2; a=(a*a)%c;
} cout<<ans;
return 0;
}
还有更高级的:
inline long long KSM(long long x,int y) {
long long res = 1;
for( ; y ; y >>= 1,x = x * x)
if(y & 1) res = x * res;
return res;
}