题目描述
输入整数m,n,k,求m^n mod k的值。m,n,k*k为长整型范围内的自然数
输入
输入一行3个整数,分别为m,n,k
输出
输出一行一个整数,表示结果
样例输入
2 10 9
样例输出
7
直接快速幂就解决了,注意用long long
最好用位运算,速度比较快
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL Pow_mod(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",Pow_mod(a,b,m));
return 0;
}