题解 | #快速幂#
快速幂
https://www.nowcoder.com/practice/defdedf4fe984c6c91eefa6b00d5f4f0
#include <iostream>
using namespace std;
#define ll long long
ll add(ll&,ll&,ll&);
int main() {
int q;
cin>>q;
ll a, b, p;
while (q--) { // 注意 while 处理多个 case
scanf("%lld%lld%lld",&a,&b,&p);
ll res=add(a,b,p);
printf("%lld\n",res);
}
}
ll add(ll&a,ll&b,ll&q){
ll res=1;
while(b){
if(b&1){
res=res*a%q;
}
a=a*a%q;
b=b>>1;
}
return res;
}
// 64 位输出请用 printf("%lld")

查看4道真题和解析