题目描述
给出三个整数 a,b,ma,b,ma,b,m,求 ab mod ma^b\bmod mabmodm 的值。
输入格式
一行三个整数 a,b,ma,b,ma,b,m。
输出格式
一个整数,表示 ab mod ma^b\bmod mabmodm 的值。
样例
样例输入
2 100 1007
样例输出
169
数据范围与提示
对于全部数据,1≤a,b,m≤1091\le a,b,m\le 10^91≤a,b,m≤109。
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
typedef long long LL;
LL binary(LL a, LL b, LL m)
{
LL ans = 1;
a = a % m;//这个防止出错
while (b > 0) {
if (b & 1) {
ans = ans * a%m;
}
a = a * a%m;
b >>= 1;
}
return ans;
}
int main()
{
LL a, b, m;
scanf("%lld %lld %lld", &a, &b, &m);
printf("%lld\n", binary(a, b, m));
return 0;
}