Cod sursa(job #1649071)
| Utilizator | Data | 11 martie 2016 12:28:27 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include<fstream>
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
#define mod 1999999973
unsigned long long N,P;
unsigned long long exp_log(unsigned long long,unsigned long long);
int main() {
f>>N>>P;
g<<exp_log(N,P);
f.close();g.close();
return 0;
}
unsigned long long exp_log(unsigned long long baza,unsigned long long exp) {
unsigned long long rez=1;
while (exp>=1) {
if ((exp&1)==1) {
rez=(rez*baza)%mod;
}
exp>>=1;
baza=(baza*baza)%mod;
}
return rez;
}
