Cod sursa(job #352550)

Utilizator pirvupirvu tudor pirvu Data 2 octombrie 2009 11:45:11
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<cstdio>

int const M=1999999973;

int n,p;


int pow(int a, int n)

{
	if (!n) return 1;
	
	if (n & 1 )  return (int) ( ( long long )a * pow((long long)a*a%M, n>>1)  %M );
	
	return (int) ( long long ) (pow((long long)a*a%M, n>>1) %M );
	
}


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