Cod sursa(job #278248)
| Utilizator | Data | 12 martie 2009 10:38:29 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
using namespace std;
const unsigned long MODULO = 1999999973;
unsigned long long mypow (unsigned long long base, unsigned long long exp)
{
unsigned long long ret=1;
for (; exp; exp>>=1) {
if (exp&1) ret = (ret*base)%MODULO;
base = (base*base)%MODULO;
}
return ret;
}
int main ()
{
unsigned long long N,P;
ifstream in("lgput.in");
ofstream out("lgput.out");
in >> N >> P;
in.close();
out << mypow(N,P) << '\n';
out.close();
return 0;
}
