题目
http://poj.org/problem?id=1995
思路
快速幂取余的另一个简单题。
代码
#include<cstdio>
long long t,a,b,p,n,ans;
long long calc(long long a,long long b,long long p)
{
long long r=1;
for (;b;b>>=1)
{
if (b&1) r=r*a%p;
a=a*a%p;
}
return r;
}
int main()
{
scanf("%d",&t);
while (t--)
{
ans=0;
scanf("%lld%lld",&p,&n);
while (n--)
{
scanf("%lld%lld",&a,&b);
ans=(ans+calc(a,b,p))%p;
}
printf("%lld\n",ans);
}
}