一、题目描述
二、参考代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void qq(ll a, ll b, ll m)
{
if (a == 0) cout << 0 << endl;;
ll out = 1;
a %= m;
while (b > 0)
{
if (b & 1)//奇数的最低位是 1,偶数的最低位是 0 b & 1 是一个位运算操作,它用于检查变量 b 的最低位是否为 1
{
out = (out * a) % m;
}
b >>= 1;
a = (a * a) % m;
}
cout<< out <<endl;
}
int main() {
ll t, a, b, p;
cin >> t;
while (t--)
{
cin >> a >> b >> p;
qq(a, b, p);
}
return 0;
}