快速幂加龟速乘板子
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll mod;
ll ksc(ll x,ll k)
{
ll res=0;
while(k)
{
if(k&1) res=(res+x)%mod;
k>>=1;
x=(x+x)%mod;
}
return res;
}
ll qm(ll x,ll k)
{
ll res=1;
while(k)
{
if(k&1) res=ksc(res,x);
k>>=1;
x=ksc(x,x);
}
return (ll)res;
}
int main()
{
ll a,b;
int t;
cin>>t;
while(t--)
{
cin>>a>>b>>mod;
cout<<qm(a,b)<<endl;
}
return 0;
}