Cod sursa(job #983390)
| Utilizator | Data | 11 august 2013 17:24:43 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.42 kb |
#include <fstream>
long long int N, P;
using namespace std;
long long int exp(long long int N, long long int P)
{
if(P==0) return 1;
else if(P==1) return N;
else if(P%2==0) return exp(N*N, P/2);
else if(P%2!=0) return N*exp(N*N, (P-1)/2);
}
int main()
{
ifstream f("lgput.in");
ofstream g("lgput.out");
f>>N>>P;
g<<exp(N, P)%1999999973;
g.close();
f.close();
}
