Cod sursa(job #1006462)
Utilizator | Bogdan 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;
}