POJ 1995 Raising Modulo Numbers (快速幂取余)

#include<iostream>
using namespace std;

int quick_mod(int a,int b,int m)  //模板
{
   a=a%m;
   int ans=1;
   while(b)
   {
     if(b&1)
     {
        ans=(ans*a)%m;
     }
     b>>=1;
     a=(a*a)%m;
   }

   return ans;
}

int main()
{
   int size;
   cin>>size;
   int m, h, a, b;
   while(cin>>m>>h)
   {
      int ans=0;
        for(int i=0;i<h;i++)
        {
            cin>>a>>b;
          ans=(ans+quick_mod(a,b,m))%m;
        }
      cout<<ans<<endl;
   }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/wanglaoda/p/4937122.html