Cod sursa(job #2668321)
| Utilizator | Data | 4 noiembrie 2020 19:31:43 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
#define M 1999999973
using namespace std;
ifstream f("lgput.in"); ofstream g("lgput.out");
/*int main()
{ int a,b;
f>>a>>b;
int r=1;
for(;b;b>>=1)
{ if(b&1) r=(1LL*r*a)%M;
a=(1LL*a*a)%M;
}
g<<r;
g.close(); f.close();
return 0;
}
*/
int lgput(int a, int b)
{ if(b==0) return 1;
int r=lgput(a,b/2);
r=(1LL*r*r)%M;
if(b&1) r=(1LL*r*a)%M;
return r;
}
int main()
{ int a,b;
f>>a>>b;
g<<lgput(a,b);
g.close(); f.close();
return 0;
}
