Cod sursa(job #583221)

Utilizator ELHoriaHoria Cretescu ELHoria Data 19 aprilie 2011 00:36:14
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>

const int mod = 1999999973;
/*
long long power(long long P) {
	if (!P) return 1;
	
	long long ret = power(P/2);
	return (((ret*ret) % mod) * (P & 1 ? N : 1)) % mod;
}
*/
long long logpow(long long x, long long y)
{
	if (y==1) return x%mod;
	
	long long k;	
	k=logpow(x,y/2);
	k=(k*k)%mod;
	if (y%2==1) k=(k*x)%mod;
	return k;
}
int main()
{
	long long n,p,sol;
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%lld %lld", &n, &p);
	sol=logpow(n,p);

	printf("%lld\n", sol); // Afisam solutia
}