Cod sursa(job #1310691)
Utilizator | Data | 7 ianuarie 2015 08:14:15 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.43 kb |
#include<fstream>
#define CAT 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long put (long n, long p) {
if(p == 1) return n;
if(p == 0) return 1;
else {
if(p%2) {
return (put (n, p-1) * n)%CAT;
} else {
return put((n*n)%CAT, p/2)%CAT;
}
}
}
int main() {
int n, p;
fin>>n>>p;
fout<<put(n, p)%CAT;
}