Cod sursa(job #913416)
Utilizator | Data | 13 martie 2013 14:29:10 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.38 kb |
#include <iostream>
#include <fstream>
using namespace std;
long long A,p;
int j;
int v[10000];
ifstream f("lgput.in");
ofstream g("lgput.out");
int main()
{f>>A>>p;
int i;
i=1;
while(p!=1)
{ if ((p%2)==0) {p=p/2;A=A*A;}
else {p=p-1;
v[i]=A; i++;}
}
for(j=1;j<=i;j++) if(v[j]) {A=A*v[j];}
g <<A%1999999973 << endl;
return 0;
}