pku1995

 

#include <iostream>
using namespace std;
 
int main()
{
    
long z, m, h, a, b, tmp,e;
    cin
>>z;
    
while (z--{
        cin
>>m>>h;
        tmp 
= 0;
        
for (long i = 0; i < h; ++i) 
        
{
            cin
>>a>>b;
            __int64 d 
= 1;    
            
                
long nlen = 0;
                
short Bin[34]={0};
            
while (b%2 != b)
            
{
                Bin[nlen
++= b%2;
                b 
>>= 1;
            }

            Bin[nlen] 
= b;
            d
=a;e=1;
            
for (long i = 0; i <=nlen; i++
            
{
                
                
if (Bin[i] == 1)
                
{
                
                    e 
= (e*d)%m;
                }

                d 
= (d*d)%m;
            }

        
            tmp
+=e;
        }

        cout
<<(m+tmp%m)%m<<endl;
    }

     
    
return 0;
}

posted on 2008-08-14 07:13 OIO 阅读(221) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜