Cod sursa(job #278240)
| Utilizator | Data | 12 martie 2009 10:35:52 | |
|---|---|---|---|
| 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;
const unsigned long MODULO = 1999999973;
unsigned long mypow (unsigned long base, unsigned long exp)
{
unsigned long ret=1;
for (; exp; exp>>=1) {
if (exp&1) ret = (ret*base)%MODULO;
base = (base*base)%MODULO;
}
return ret;
}
int main ()
{
unsigned 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;
}
