Cod sursa(job #153647)

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

long long n, p;

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

}


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

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

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

	fclose(stdin);
	fclose(stdout);

	return 0;

}