Pagini recente » Sandbox (cutiuţa cu năsip) | Cod sursa (job #1387422) | Cod sursa (job #775799) | Cod sursa (job #1487590) | Cod sursa (job #1602811)
#include <stdio.h>
long long exprapid(long long N, long long P){
if(P < 0) {
N = 1 / N;
P = -P;
}
if(P == 0) return 1;
long long Y = 1;
while(P > 1){
if(P % 2 == 0){
N = (N * N) % 1999999973;
P = P / 2;
}
else{
/*Y = N * Y;
N = N * N;
P = (P - 1) / 2;*/
Y = (Y * N) % 1999999973;
P = P - 1;
}
}
return Y;
}
int main(){
FILE *in, *out;
in = fopen("lgput.in", "r");
out = fopen("lgput.out", "w");
long long rest = 0, /*result = 0,*/ N, P;//, divisor;
//divisor = 1999999973;
fscanf(in, "%lld %lld", &N, &P);
printf("N = %lld P = %lld\n", N, P);
rest = exprapid(N, P);
//printf("result = %lld\n", result);
//rest = result % divisor;
fprintf(out, "%lld\n", rest);
fclose(in);
fclose(out);
return 0;
}