Cod sursa(job #153503)

Utilizator ScrazyRobert Szasz Scrazy Data 10 martie 2008 16:28:29
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>
#define mod 199999973

long n, p;

long lgput(long n, long p)
{
	if (p==1) return n%mod;
	if (p==2) return (n*n)%mod;
	if (p&1)
	{
		long x=lgput(n, p/2)%mod;
		return (n*x*x)%mod;
	}
	else
	{
		long x=(lgput(n, p/2))%mod;
		return (x*x)%mod;
	}
}

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

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

	printf("%ld", lgput(n,p));

	fclose(stdin);
	fclose(stdout);

	return 0;

}