快速幂
快速幂

给定 n 组 ai,bi,p对于每组数据,求出 abiimodpii 的值。
输入格式
第一行包含整数 nn。
接下来 nn 行,每行包含三个整数 ai,bi,piai,bi,pi。
输出格式
对于每组数据,输出一个结果,表示 abiimodpiaibimodpi 的值。
每个结果占一行。
数据范围
1≤n≤1000001≤n≤100000,
1≤ai,bi,pi≤2×1091≤ai,bi,pi≤2×109
输入样例:
2
3 2 5
4 3 9
输出样例:
4
1
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
// a ^ k % p
int qmi(int a, int k, int p) {
int res = 1;
while (k) {
if (k & 1) {
res = (LL)res * a % p;
}
k >>= 1;
a = (LL)a * a % p;
}
return res;
}
int main() {
int n;
cin >> n;
while (n--) {
int a, k, p;
cin >> a >> k >> p;
cout << qmi(a, k, p);
}
}

浙公网安备 33010602011771号