出题人:
描述
请计算 a
b
modp 的值。
输入描述
一行三个正整数:a,b, p 。
输出描述
一个整数,即 a
b
modp 的结果。
用例输入 1
2 3 100
用例输出 1
8
用例输入 2
4 2 3
用例输出 2
1
提示
对于 100% 的数据,保证 0≤a,b<2
31
,a+b>0,2≤p<2
31
。
#include <iostream>
using namespace std;
long long fastPow(long long a, long long b, long long p) {
long long res = 1;
a = a % p;
while (b > 0) {
if (b & 1) {
res = (res * a) % p;
}
a = (a * a) % p;
b >>= 1;
}
return res;
}
int main() {
long long a, b, p;
std::cin >> a >> b >> p;
long long result = fastPow(a, b, p);
std::cout << result << std::endl;
return 0;
}
``