Cod sursa(job #1957882)

Utilizator CodrinsahCotarlan Codrin Codrinsah Data 7 aprilie 2017 20:32:37
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>
#define prim 1999999973
using namespace std;
ifstream fi ("lgput.in");
ofstream fo ("lgput.out");
long long putere (long long baza,long long expo)
{
  long long rez=1;
  baza=baza%prim;
  if (expo==1) return baza;
  if (expo%2==1)
  {
    rez=rez*baza;
    rez=rez%prim;
    expo--;
    rez=rez*putere(baza*baza,expo/2);
  }
  else
    rez=putere(baza*baza,expo/2);
  rez=rez%prim;
  return rez;
}
long long a,b;
int main()
{
    fi>>a>>b;
    fo<<putere(a,b);
    return 0;
}