Cod sursa(job #1006462)

Utilizator pop_bogdanBogdan Pop pop_bogdan Data 7 octombrie 2013 08:47:36
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <fstream>
using namespace std;

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

long long ExponentiereRapida(long long x,long long n)
{
	if ( n == 0 )
	return 1;
	if ( n == 1 )
	return x;
	if ( n % 2 == 0 )
	return ExponentiereRapida(x*x,n/2);
	if ( n % 2 == 1 )
    return x*ExponentiereRapida(x*x,(n-1)/2);
}

int main()
{
    long long r,n,p;
    is >> n;
    is >> p;
    r = ExponentiereRapida(n,p) % 1999999973;
    os << r;
}