long long也开了,似乎找不到什么问题
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll mi(ll a,ll b,ll p)
{
if(b==0) return 1;
if(b==1) return a;
ll t=(mi(a,b/2,p)%p+p)%p;
if(b%2==0) return (t*t+p)%p;
else return ((t*t*a)p)%p;
}
int main()
{
ll a,b,p;
cin>>a>>b>>p;
cout<<a<<"^"<<b<<" mod "<<p<<"="<<mi(a,b,p);
return 0;
}