Cod sursa(job #352809)

Utilizator Bit_MasterAlexandru-Iancu Caragicu Bit_Master Data 3 octombrie 2009 15:02:29
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <cstdio>

const int M = 1999999973;

int rest_putere (int n, int p)
{
	int r = 1;
	while (p)
	{
		if (p % 2 == 1)
			r = (int)(((long long)r * n)%M);
		p /= 2;
		n = (int)((long long)n * n % M);
	}
	return r;
}

int main()
{
	int n,p;
	freopen ("lgput.in","r",stdin);
	freopen ("lgput.out","w",stdout);
	scanf ("%d%d",&n,&p);
	printf ("%d",rest_putere(n,p));
	return 0;
}