https://www.acwing.com/problem/content/description/877/
模板一:
#include<cstdio>
#include<iostream>
#define ll long long int
using namespace std;
int quick_pow(ll a,ll b,ll c)
{
int sum=1;
while(b)
{
if(b&1) sum=sum*a%c;
b=b>>1;
a=(a*a)%c;
}
return sum;
}
int main(void)
{
int n; cin>>n;
while(n--)
{
ll a,b,c; cin>>a>>b>>c;
cout<<quick_pow(a,b,c)<<endl;
}
return 0;
}
模板二:
#include<cstdio>
#include<iostream>
#define ll long long int
using namespace std;
ll quick_pow(ll a,ll b,ll c)
{
if(b==0) return 1;
if(b&1) return a*quick_pow(a,b-1,c)%c;
else
{
ll t=quick_pow(a,b/2,c)%c;
return (t*t)%c;
}
}
int main(void)
{
int n; cin>>n;
while(n--)
{
ll a,b,c; cin>>a>>b>>c;
cout<<quick_pow(a,b,c)<<endl;
}
return 0;
}