Cod sursa(job #460861)

Utilizator joli94Apostol Adrian Alexandru joli94 Data 4 iunie 2010 12:52:16
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<cstdio>

const int mod = 1999999973;
/*
int pow(int a,int n)
{
	if(n==0)
		return 1;
	if ((n%2)==0) return pow((long long) a*a%mod , n/2);
	else return (long long)a*pow((long long)a*a%mod , n/2)%mod;
}
*/

int pow(int a,int n)
{
	int p=1;
	while(n!=0)
	{
		if(n%2!=0)
			p = (long long)p * a % mod;
		a = (long long)a * a % mod;
		n /= 2;
	}
	return p;
}

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