#include<cstdio>
int b,p,k;
int powermod(int a,int b,int mod){
int ans=1;
a=a%mod;
while(b>=1){
if(b%2==1)
ans=((ans%mod)*(a%mod))%mod;
b=b/2;
a=((a%mod)*(a%mod))%mod;
}
return ans;
}
int main(){
freopen("1497.in","r",stdin);
freopen("1497.out","w",stdout);
scanf("%d%d%d",&b,&p,&k);
printf("%d",b);
printf("^");
printf("%d",p);
printf(" mod ");
printf("%d",k);
printf("=");
printf("%d",powermod(b,p,k));
//printf("%d^%d mod %d=%d",b,p,k,powermod(b,p,k));
return 0;
}
题解:快速幂。注释的那句printf不知道为什么是错的。。。