Cod sursa(job #352549)

Utilizator Teodor94Teodor Plop Teodor94 Data 2 octombrie 2009 11:44:41
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include <cstdio>

const int M=1999999973;

int pow(int a,int n)
{
	if (n==0) return 1;
	if (n&1)   // n%2=1;
		return (int)((long long)a*pow((long long)a*a%M,n>>1)%M);  // n>>1   =   n=n/2;
	return pow((long long)a*a%M,n>>1);
}

int n,p;

int main()
{
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%d%d",&n,&p);
	printf("%d",pow(n,p));	
}