原题: http://poj.org/problem?id=1995
快速幂取模讲解;http://blog.csdn.net/zark721/article/details/76735927
#include<stdio.h>
int quick(int a,int b,int c)
{
int ans=1;
a=a%c;
while(b>0)
{
if(b&1)ans=(ans*a)%c;
b>>=1;
a=(a*a)%c;
}
return ans;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int M;
int i,n;
scanf("%d %d",&M,&n);
int a,b;
int sum=0;
for(i=0;i<n;i++)
{
scanf("%d %d",&a,&b);
sum=(sum+quick(a,b,M))%M;
}
printf("%d\n",sum);
}
return 0;
}