给定 n组 a,b,p,对于每组数据,求出 (a^b) mod p的值。
//因为b = 2^x1+2^x2+2^x3+...+2^xn
//所以a^b = a^(2^x1+2^x2+...+2^xn)
//3^6求解
//b = 6, a = 3
//2进制表示:110
//6 = 2^1+2^2
//所以res = a^6 = a^(2^1+2^2) = a^2^1*a^2^2;
#include<bits/stdc++.h>
using namespace std;
int n, p;
int a, b;
void qmi(long long a, long long b, int p)
{
long long res = 1;
while(b)
{
if(b&1) res = res*a%p;
a = a * a % p;
b>>=1;
}
cout<<res<<endl;
}
int main()
{
cin >>n;
while(n--)
{
cin >>a >>b >>p;
qmi(a, b, p);
}
return 0;
}