Cod sursa(job #2297207)

Utilizator Radu_FilipescuFilipescu Radu Radu_Filipescu Data 5 decembrie 2018 16:05:53
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>

using namespace std;

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

const int prim = 1999999973;

long long N, P;

void Read()
{
  fin >> N >> P;
  fin.close();
}

int Exp_rapida( int N, int pow )
{
  if( pow == 1 ) return N;

  long long rez = Exp_rapida( N, pow / 2 );

  rez = ( rez * rez ) % prim;
  if( pow % 2 ) rez = ( rez * N ) % prim;

  return (int) rez;
}

int main()
{
    Read();
    fout << Exp_rapida( N, P ) << '\n';

    return 0;
}