Cod sursa(job #604326)
Utilizator | Data | 21 iulie 2011 17:44:32 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
# include <fstream>
using namespace std;
const long long prim = 1999999973;
int main(){
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
long long n, p, rp, i, j, rf, k;
fin >> n >> p;
rf = 1;
j = 1;
rp = n;
for (i = 1; (1 << i ) <= p ; i++)
rp = (rp * rp) % prim;
if ( (1 << i) > p ) {
i = 1 << (i - 1);
for (; i < p; i++)
rp = (rp * n) % prim;
}
fout << rp;
return 0;
}