为什么过不去?
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll t(ll m,string k){
ll ans=0;
for(int i=0;i<k.length();i++){
ans*=10;
ans+=k[i]-'0';
ans%=m;
}
return ans;
}
long long phi(long long a){
long long q=a,r=a;
for(int i=2;i<=sqrt(r)+1;i++){
if(a%i==0){
q/=i;
q*=(i-1);
while(a%i==0){
a/=i;
}
}
}
if(a>1){
q/=a;
q*=(a-1);
}
// cout<<q<<endl;
return q;
}
int main(){
string a,r;
long long c;
cin>>a>>r>>c;
long long b=t(c,a),n=t(phi(c),r)-1;
n+=phi(c);
if(b==0)cout<<c;
else{
long long ans=b-1;
while(n>0){
if(n%2==1){
ans*=b;
ans%=c;
}
b*=b;
b%=c;
n/=2;
}
if(ans!=0)cout<<ans;
else cout<<c;
}
return 0;
}