Cod sursa(job #1427038)
Utilizator | Data | 1 mai 2015 13:15:54 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include <fstream>
#define MOD 1999999973
using namespace std;
ifstream cin("lgput.in");
ofstream cout("lgput.out");
template <class T> T lg_put(T A, T B){
T x1 = A;
T x2 = 1;
while(B > 1){
if(B & 1){
B ^= 1;
x2 = (x1 * x2)%MOD;
}
B >>= 1;
x1 = x1 * x1;
}
return x1 * x2;
}
int main()
{
long long N,P;
cin >> N >> P;
cout << lg_put(N,P);
return 0;
}