Cod sursa(job #2644758)

Utilizator akumariaPatrascanu Andra-Maria akumaria Data 25 august 2020 21:34:56
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.45 kb
#include <cstdio>

using namespace std;

void rid(int &n, int p, int curr_it) {
	n %= 1999999973;

    if (p < (1<<(curr_it + 1)))
        return;

	int tempn = n;
    n *= n;

	rid(n, p, curr_it + 1);

	if (p & (1<< curr_it))
	{
		n *= tempn;
	}
}




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

	int n, p;
	scanf("%d%d", &n, &p);

	rid(n, p, 0);

	printf("%d\n", n);

	return 0;
}