View Code of Problem 1080

#include<cstdio>
int quickpow(__int64 n,__int64 m,__int64 mod)
{
	__int64 ans=1,base=n;
	while(m)
	{
		if(m&1)
		{
			ans=(base*ans)%mod;
		}
		base=(base*base)%mod;
		m/=2;
	}
	return ans;
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
	__int64 m;
	__int64 n;
	scanf("%I64d %I64d",&m,&n);
	__int64 ans=0;
	for(__int64 i=0;i<n;i++)
	{
		__int64 q,w;
		scanf("%I64d %I64d",&q,&w);
		ans+=quickpow(q,w,m);
		 } 	
		 ans%=m;
		 printf("%I64d\n",ans);
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 1080