Cod sursa(job #352808)

Utilizator Bit_MasterAlexandru-Iancu Caragicu Bit_Master Data 3 octombrie 2009 14:58:56
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.37 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 *= n;
	}
	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;
}