Cod sursa(job #899390)

Utilizator starduststardust stardust Data 28 februarie 2013 14:15:15
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <fstream>
#define mod 1999999973

using namespace std;
long long a,sol;
int n,p;
ifstream in("lgput.in");
ofstream out("lgput.out");

int main()
{
    in>>n>>p;
    sol=1LL;
    a=n;
    for(int i=0;(1<<i)<=p;i++) // iau toti bitii lui p la rand
      {
          if( ((1<<i)&p) >0) //daca bitul e 1
          sol=(sol*a)%mod;

          a=(a*a)%mod;
      }

    out<<sol;

    return 0;
}