3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)
输出计算结果
3 5 8
3
#include <iostream>
#include <stdio.h>
using namespace std;
long long a,b,c;
long long mod(long long a,long long b,long long c)
{
if(b==1) return a%c;
long long z;
z=((a%c)*(a%c))%c;
if(b%2==1){
z=(a*mod(z,b/2,c))%c;
return z;
}
else return mod(z,b/2,c);
}
int main()
{
while(scanf("%lld%lld%lld",&a,&b,&c)!=EOF){
printf("%lld\n",mod(a,b,c));
}
return 0;
}
原文:http://www.cnblogs.com/shixinzei/p/7236196.html