Cod sursa(job #283681)
Utilizator | Puscas Sergiu harababurel | Data | 19 martie 2009 15:26:36 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <iostream.h>
#include <fstream.h>
#include <math.h>
int main() {
ifstream f; f.open("lgput.in");
ofstream g; g.open("lgput.out");
long long int n, p, jumatate=1, jumatatedoi, i,panalacat=0;
f>>n>>p;
for(i=int(sqrt(p)); i<=2; i--) {
if(p%i==0) { panalacat=i; break; }
}
for(i=1; i<=panalacat; i++) {
jumatate=jumatate*n;
}
jumatatedoi=jumatate;
for(i=1; i<p/panalacat; i++) {
jumatate=jumatate*jumatatedoi;
}
g<<jumatate%1999999973;
f.close();
g.close();
return 0;
}