Cod sursa(job #352548)

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

int pow(int a,int n)
{
	if (n==0) return 1;
	if (n&1)   // n%2=1;
		return (int)((long long)a*pow(a*a,n>>1)%1999999973);  // n>>1   =   n=n/2;
	return pow((long long)a*a%1999999973,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));	
}