3
POJ 1995
16
4
2 3
3 4
4 5
5 6
36123
1
2374859 3029382
17
1
3 18132
AC代码: 小心第二个用例中要求了int会爆掉所以我们用 long long
POJ 1995
16
4
2 3
3 4
4 5
5 6
36123
1
2374859 3029382
17
1
3 18132
AC代码: 小心第二个用例中要求了int会爆掉所以我们用 long long
#include"iostream"
#include"cstdio"
#include"cstdlib"
using namespace std;
int quickmod(long long a,long long b,long long mod)
{
int ans=1;
while(b>0)
{
if(b%2==1)
{
ans=(ans*a)%mod;
b--;
}
b=b/2;
a=(a*a)%mod;
}
return ans;
}
int main()
{
int t;
int mod;
int k;
int ans=0;
cin>>t;
while(t--)
{
ans=0;
cin>>mod>>k;
for(int i=1;i<=k;i++)
{
int a,b;
cin>>a>>b;
ans+=quickmod(a,b,mod)%mod;
ans=ans%mod;
}
cout<<ans<<endl;
}
return 0;
}