基准时间限制:1 秒 空间限制:131072 KB 分值: 0
难度:基础题
给出3个正整数A B C,求A^B Mod C。
例如,3 5 8,3^5 Mod 8 = 3。
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
using namespace std;
long long quickmod(long long a,long long b,long long m)
{
long long ans = 1;
while(b)//用一个循环从右到左便利b的所有二进制位
{
if(b&1)//判断此时b[i]的二进制位是否为1
{
ans = (ans*a)%m;//乘到结果上,这里a是a^(2^i)%m
b--;//把该为变0
}
b/=2;
a = a*a%m;
}
return ans;
}
int main()
{
int m,a,b;
while(scanf("%d%d%d",&a,&b,&m)!=EOF)
{
long long int ans = quickmod(a,b,m);
printf("%lld\n",ans);
}
return 0;
}