Cod sursa(job #643673)

Utilizator matei_cChristescu Matei matei_c Data 4 decembrie 2011 10:50:02
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<cstdio>

const int MOD = 1999999973 ;

int n,p;

long long power(int a,int b)
{
	if(b==1)
		return a;
	else
	{
		if(b%2==0)
		{
			long long sol = power(a,b/2);
			return ((sol%MOD)*(sol%MOD))%MOD;
		}	
		else
		{
			long long sol = power(a,b-1);
			return ((sol%MOD)*(a%MOD))%MOD;
		}	
	}	
}

int main()
{
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%d%d",&n,&p);
	if(p==0)
		printf("1\n");
	else
		printf("%lld\n",power(n,p));
}