http://ac.jobdu.com/problem.php?pid=1085
refs:
1.http://blog.csdn.net/JDPlus/article/details/18840577?locationNum=1&fps=1
2.http://blog.sina.com.cn/s/blog_8619a25801010wcy.html
Code from refs[2]
#include <stdio.h>
#define LL long long
LL exp_mod(LL x, LL y, LL n){
LL ret = 1;
while(y){
if(y&1) ret = (ret*x)%n;
x = (x*x)%n;
y = y>>1;
}
return ret;
}
int main(){
LL a,b,k,ans;
while(scanf("%lld%lld%lld",&a,&b,&k) !=EOF ){
ans = exp_mod(a,b,k-1);
if(ans == 0) ans = k-1;
printf("%lld\n",ans);
}
return 0;
}