Cod sursa(job #1679476)
| Utilizator | Data | 7 aprilie 2016 23:46:28 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("lgput.in" );
ofstream g("lgput.out");
#define MOD 1999999973
int N, P;
int square(int x) { return x*x; }
long long FastPow(int base, int exponent) {
if ( exponent == 0 ) return 1;
if ( exponent == 1 ) return base;
if ( exponent%2 == 0 )
return square(FastPow(base, exponent/2)) % MOD;
else
return base * FastPow(base, exponent-1) % MOD;
}
int main() {
f >> N >> P;
g << FastPow(N, P);
}
