题目:
代码:
#include <iostream>
using namespace std;
typedef long long LL;
//a^k%p
LL qmi(int a, int k, int p)
{
LL res = 1;
while (k) //k的二进制表示
{
if (k & 1) res = res * a % p; //如果k的末位是一
k>>=1; //把k的末位删掉
a = a * (LL)a % p; //把a变成下一个a^(2^0),a^(2^1),,,
}
return res;
}
int main()
{
int n;
cin>>n;;
while (n -- )
{
int a, k, p;
cin>>a>>k>>p;
printf("%lld\n", qmi(a, k, p));
}
return 0;
}