Cod sursa(job #1465030)
Utilizator | Data | 26 iulie 2015 13:19:30 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
#include <iostream>
#define p 1999999973
using namespace std;
long long pow(long long baza,long long exponent)
{
if(exponent==0)
return 1;
else
if(exponent%2==0)
{
return (pow(baza*baza,exponent/2)%p);
}
else
{
return (baza*pow(baza*baza,(exponent-1)/2)%p);
}
}
int main()
{
ifstream in ("lgput.in");
ofstream out ("lgput.out");
long long a,b,c=0;
in>>a>>b;
c=pow(a,b);
out<<c%p;
return 0;
}