Cod sursa(job #1201769)

Utilizator azkabancont-vechi azkaban Data 25 iunie 2014 23:04:06
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("lgput.in");
ofstream cout("lgput.out");
long long lgput (long long baza, long long exp)
{
  if (!exp) return 1;
       else {
             long long aux(1),rest(1999999973);
             while (exp){
                         if (exp%2) aux=(aux*baza)%rest, --exp;
                                else {
                                      baza=(baza*baza)%rest;
                                      exp/=2;
                                      }
                         } 
              return aux; 
              }       
}

long long n,p;
int main()
{
  cin>>n>>p;
  cout<<lgput(n,p); 
    
    
    
return 0;
}