Cod sursa(job #1509058)
| Utilizator | Data | 23 octombrie 2015 14:20:49 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include<fstream>
#include<iostream>
using namespace std;
#define FIN "lgput.in"
#define FOUT "lgput.out"
#define MOD 1999999973
ifstream f(FIN);
ofstream g(FOUT);
long long pow(int x, int n)
{
if(n == 0)
{
return 1;
}
else if(n == 1)
{
return x;
}
else if(n % 2 == 0)
{
return pow(x * x, n / 2) % MOD;
}
else
{
return x * pow(x * x, (n - 1) / 2) % MOD;
}
}
long long n, p;
int main()
{
f >> n;
f >> p;
g << pow(n, p);
}
