Pagini recente » Cod sursa (job #1394285) | Cod sursa (job #3140474) | Cod sursa (job #1165409) | Cod sursa (job #248673) | Cod sursa (job #1453596)
#include <stdio.h>
#define R 1999999973
#define MAX 50
int put(int n, int p);
int main(){
freopen("lgput.in", "r", stdin);
freopen("lgput.out", "w", stdout);
int n, p;
scanf("%d%d", &n, &p);
printf("%d\n", put(n, p));
return 0;
}
int put(int n, int p){
long long v[MAX], rez = 1;
int aux, t, princ = p;
v[0] = n % R;
aux = princ;
t = 0;
while(aux > 1){
aux /= 2;
++t;
v[t] = (v[t - 1] * v[t - 1]) % R;
}
princ -= 1<<t;
rez = (rez * v[t]) % R;
while(princ > 0){
t = 0;
aux = princ;
while(aux > 1){
aux /= 2;
++t;
}
princ -= 1<<t;
rez = (rez * v[t]) % R;
}
return rez;
}