Cod sursa(job #1509862)

Utilizator CMCmasterCatalin Costescu CMCmaster Data 24 octombrie 2015 12:58:58
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <iostream>
#include <fstream>
#define nr 1999999973

long long logput(long long a,long long n)
{   if(n==0) return 1;
    if(n==1) return a%nr;

    if(n%2==0) return logput(a*a%nr,n/2)%nr;
    if(n%2==1) return ((logput(a*a%nr,(n-1)/2)*a)%nr);
}

  using namespace std;

  int main()
  {
   ifstream in("lgput.in");
   ofstream out("lgput.out");
   int a,n;
   in>>a>>n;
   out<<logput(a,n);

   return 0;
  }