Cod sursa(job #1256258)

Utilizator dorinmoldovanMoldovan Dorin dorinmoldovan Data 5 noiembrie 2014 23:30:40
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include "stdio.h"

const int M =1999999973;

int n, p;
long long int a, solution;
unsigned int i;

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

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

	a = n;
	solution = 1;

	for(i = 0; (i << 1) <= p; ++ i)
	{
		if(((i << 1) & p) > 0)
			solution = (solution * a) % M;
		a = (a * a) % M;
	}

	printf("%lld", solution);

	return 0;
}