小白月赛 12 B
由于数太大,不能直接乘,需要再写个函数求乘取模
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <queue>
//#include <bits.stdc++.h>
using namespace std;
typedef long long ll;
ll qsj(ll a,ll b,ll p)
{
ll ans=0;
a%=p;
while(b)
{
if(b&1)
ans=(ans+a)%p;
a=(a+a)%p;
b/=2;
}
return ans%p;
}
ll qsm(ll a,ll b,ll p)
{
ll ans=1;
while(b)
{
if(b&1)
ans=qsj(ans,a,p);
a=qsj(a,a,p);
b/=2;
}
return ans%p;
}
int main()
{
int n;
cin>>n;
while(n--)
{
ll a,b,p;
cin>>a>>b>>p;
cout<<qsm(a,b,p)<<endl;
}
return 0;
}