Pagini recente » Cod sursa (job #1935490) | Cod sursa (job #429483) | Cod sursa (job #707381) | Cod sursa (job #901392) | Cod sursa (job #3233821)
#include <stdio.h>
#include <stdlib.h>
#define DIV 1999999973
#define INPUT_FILE "lgput.in"
#define OUTPUT_FILE "lgput.out"
unsigned int expBySquaring(unsigned int n, unsigned int p) {
if(p == 0) return 1;
unsigned int y = 1;
while(p > 1) {
if(p % 2 != 0) {
y = n * y;
p = p - 1;
}
n = n * n;
p = p / 2;
n %= DIV;
}
return n * y;
}
int main() {
unsigned int n = 0, p = 0;
FILE *in = NULL, *out = NULL;
if((in = fopen(INPUT_FILE, "r")) == NULL) {
fprintf(stderr, "Eroare la deschidere fisier intrare\n");
exit(-1);
}
if((out = fopen(OUTPUT_FILE, "w")) == NULL) {
fprintf(stderr, "Eroare la deschidere fisier iesire\n");
exit(-1);
}
fscanf(in, "%u %u", &n, &p);
fprintf(out, "%u\n", expBySquaring(n, p));
fclose(in);
fclose(out);
return 0;
}