题目链接:P1226 【模板】快速幂||取余运算
程序说明:
注意开long long。
res最后还要再模一次k,因为指数有可能等于0。
代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long LL;
LL fun(LL b, LL p, LL k) {
LL res = 1;
while(p) {
if(p & 1) res = res * b % k;
p >>= 1;
b = b * b % k;
}
return res % k; //注意res还要再模一次k
}
int main() {
LL b, p, k;
cin>>b>>p>>k;
printf("%lld^%lld mod %lld=%lld", b, p, k, fun(b, p, k));
return 0;
}