第二个样例没过也能AC!!!
#include<bits/stdc++.h>
using namespace std;
#define int long long
int mod;
int qpow(int a,int b)
{
if(b==0)
{
return 1%mod;
}
int x=qpow(a,b>>1);
if(b&1)
{
return ((x*x)%mod*a)%mod;
}
else
{
return x*x%mod;
}
}
signed main()
{
int a,m,b;char ch;int phi=1,flag=0;
scanf("%lld%lld",&a,&m);
mod=m;
a%=m;
int mm=m;
for(int i=2;i*i<=m;i++)
{
if(mm%i)continue;
phi*=i-1;
mm/=i;
while(mm%i==0)
{
phi*=i;
mm/=i;
}
}
if(mm>1)phi*=mm-1;
while((ch=getchar())<'0'||ch>'9');
while(b=b*10+(ch^'0'),(ch=getchar())>='0'&&ch<='9')
{
if(b>=phi)
{
flag=1;
b%=phi;
}
}
if(b>=phi)
{
flag=1;
b%=phi;
}
if(flag==1)b+=phi;
printf("%lld",qpow(a,b));
return 0;
}