Cod sursa(job #251808)

Utilizator ZillaMathe Bogdan Zilla Data 3 februarie 2009 13:39:01
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include <stdio.h>

#define nr 1999999973

long long n,p,rez;

int main()
{

	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%lld%lld",&n,&p);
	rez=n%nr;
	--p;
	while(p>1)
		{
			if(p%2==1)
				{
					rez=((rez%nr)*(n%nr))%nr;
					--p;
				}
			else
				{
					rez=((rez%nr)*(rez%nr))%nr;
					p/=2;
				}
		}
	printf("%lld",rez);
	return 0;
}