Cod sursa(job #2000575)

Utilizator ruxandramateiMatei Ruxandra ruxandramatei Data 14 iulie 2017 10:30:34
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("lgput.in");
ofstream out("lgput.out");


int rezolvare(int putere, int numar){
  if(putere < 0)
    return rezolvare(1 / numar, -putere);
  if(putere == 0)
    return 1;
  if(putere == 1)
    return numar;
  if(putere % 2 == 0)
    return rezolvare (putere / 2, numar * numar) %  1999999973;
  else
    return  numar * rezolvare((putere - 1) / 2, numar * numar) %  1999999973;
}

int main(){
  int nr, putere;
  in >> nr >> putere;
  out << rezolvare(putere, nr) %  1999999973;
  return 0;
}