快速幂、快速乘模板
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll kuaisucheng(ll a,ll b,ll c)
{
a%=c;
ll ans=0;
while(b>0)
{
if(b%2==1)
{
ans+=a;
}
if(ans>=c)
ans-=c;
a+=a;
if(a>=c)
a-=c;
b/=2;
}
return ans;
}
int main()
{
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
ll n;
cin>>n;
while(n--)
{
ll a,b,c;
cin>>a>>b>>c;
ll ans=1;
a%=c;
while(b>0)
{
if(b%2==1)
{
ans=kuaisucheng(ans,a,c);
}
a=kuaisucheng(a,a,c);
b/=2;
}
cout<<ans<<endl;
}
return 0;
}