跟RSA有啥关系!
题源:WOJ-1315
用二次方叠乘来进行指数运算,来减少运算。
#include<stdio.h>
long int mod(long int a, long int b, long int c){
long int res = 1;
while (b >= 1){
if (b % 2 == 1) res = (res*a) % c;
a = (a*a) % c;
b = b / 2;
}
return res;
}
int main(){
long int a, b, c;
while(scanf_s("%ld%ld%ld", &a, &b, &c) != EOF&&!(a == 0 && b == 0 && c == 0)){
printf("%ld\n", mod(a, b, c));
}
return 0;
}