Cod sursa(job #153515)

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

long long n, p;

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

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

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

	printf("%lld", (lgput(n,p))%mod);

	fclose(stdin);
	fclose(stdout);

	return 0;

}