Cod sursa(job #1411919)
| Utilizator | Data | 1 aprilie 2015 00:21:06 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <iostream>
#include <fstream>
int expSquare(int x, int n)
{
if ( n < 0 ) return 1;
else if ( n == 0 ) return 1;
else if ( n == 1 ) return x;
else if ( n % 2 == 0 ) return expSquare(x*x,n/2);
else if ( n % 2 == 1 ) return x * expSquare(x*x,(n-1)/2);
}
int main( int argc, char* argv[] )
{
std::ifstream input( "lgput.in" );
std::ofstream output( "lgput.out" );
int N,P;
input >> N >> P;
output << expSquare(N,P) % 1999999973;
input.close();
output.close();
return 0;
}
