51nod1046快速幂取余

给出3个正整数A B C,求A^B Mod C。

例如,3 5 8,3^5 Mod 8 = 3。
Input
3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)
Output
输出计算结果
Input示例
3 5 8
Output示例
3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
long long quickmod(long long a,long long b,long long m){
long long ans=1;
while(b){
if(b&1){
ans=(ans*a)%m;//这里a是a^(2^i)%m
b--;
}
b/=2;
a=a*a%m;
}
return ans;
}
int main(){
int a,b,m;
while(scanf("%d%d%d",&a,&b,&m)!=EOF){
long long ans=quickmod(a,b,m);
printf("%lld",ans);
}
}