Cod sursa(job #1802547)

Utilizator iAnduAlexandru Banu iAndu Data 10 noiembrie 2016 14:45:56
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>

using namespace std;

unsigned int power(unsigned int nr, unsigned int pow) {
	if (pow == 1) {
		return nr;
	} else if (pow % 2) {
		return (nr * power(nr, pow - 1)) % 1999999973;
	} else {
		unsigned int aux = power(nr, pow >> 1) % 1999999973;
		return (aux * aux) % 1999999973;
	}
}

int main() {
	unsigned int nr, pow;

	FILE *input = fopen("lgput.in", "r");
	fscanf(input, "%u %u", &nr, &pow);
	fclose(input);

	FILE *output = fopen("lgput.out", "w");
	fprintf(output, "%u\n", power(nr, pow) % 1999999973);
	fclose(output);

	return 0;
}