Cod sursa(job #1429335)
Utilizator | Data | 6 mai 2015 08:23:18 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 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){
if(B & 1){
//B ^= 1;
x2 = (x2 * x1)%MOD;
}
B >>= 1;
x1 = (x1 * x1)%MOD;
}
return x2;
}
int main()
{
long long N,P;
cin >> N >> P;
cout << lg_put(N,P);
return 0;
}