题目链接
题意
给定正整数A、B、P,求AB mod P的值。有T组询问。
思路
- 快速乘,快速幂模板
参考代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll m;
ll multiply(ll x,ll y){
ll ret=0;
for(;y;y>>=1){
if(y&1) ret=(ret+x)%m;
x=(x+x)%m;
}
return ret;
}
ll pow(ll x,ll n,ll mod)
{
ll res=1;
while(n>0)
{
if(n%2==1)
{
res=multiply(res,x);
res=res%mod;
}
x=multiply(x,x);
x=x%mod;
n>>=1;
}
return res;
}
int main()
{
int h;
cin>>h;
while(h--)
{
ll a, n;
cin >> a >> n >> m;
if(a>m)a=a%m;
ll ans=pow(a, n, m);
cout <<ans<<endl;
}
}