#include<stdio.h>
__int64 quickpow(int m,int n,int s) {
__int64 ans=1,base=m;
while(n) {
if(n&1) {
ans=ans*base%s;
}
base=base*base%s;
n>>=1;
}
return ans;
}
int main() {
int T;
scanf("%d",&T);
while(T--) {
int k,n,x,y;
__int64 sum=0;
scanf("%d %d",&k,&n);
for(int l=0; l<n; l++) {
scanf("%d %d",&x,&y);
sum=(sum+quickpow(x,y,k))%k;
}
printf("%I64d\n",sum);
}
return 0;
}

本文介绍了一种快速幂运算的实现方法,并通过一个具体的程序示例展示了如何利用快速幂进行批量计算。该方法适用于需要频繁进行大数幂运算的场景,如在密码学中生成密钥或验证签名等。

被折叠的 条评论
为什么被折叠?



