#include <bits/stdc++.h>
using namespace std;
int a,b,p;
long long m(long long a,long long b){
if(b == 1) return a % p;
if(b % 2 == 0){
long long tmp = m(a,b/2) % p;
return (tmp * tmp) % p;
}
else if(b % 2 == 1) {
long long tmp = m(a,b/2) % p;
return (tmp * tmp * a) % p;
}
}
int main(){
cin >> a >> b >> p;
printf("%lld^%lld mod %lld=%lld",a,b,p,m(a,b));
return 0;
}
第七个点WA了
in : 156431 154941233 467107951
out : 156431^154941233 mod 467107951=216052475
开了longlong还会炸