Cod sursa(job #2499413)

Utilizator radustn92Radu Stancu radustn92 Data 26 noiembrie 2019 01:22:36
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.48 kb
#include <cstdio>

const int MOD = 1999999973;
int N, K;

int lgput(int base, int exponent) {
	long long result = 1, currentBasePow2 = base;
	while (exponent) {
		if (exponent & 1) {
			result = (result * currentBasePow2) % MOD;
		}

		currentBasePow2 = (currentBasePow2 * currentBasePow2) % MOD;
		exponent >>= 1;
	}

	return result;
}

int main() {
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);

	scanf("%d%d", &N, &K);
	printf("%d\n", lgput(N, K));
	return 0;
}