Cod sursa(job #181429)

Utilizator amadaeusLucian Boca amadaeus Data 18 aprilie 2008 12:31:13
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.36 kb
#include <stdio.h>

#define MOD 1999999973ll

int main() {
	long long N, P, t, r, mask;
	
	freopen( "lgput.in", "r", stdin );
	freopen( "lgput.out", "w", stdout );

	scanf( "%lld%lld", &N, &P );

	for( t = N, r = mask = 1; mask <= P; mask <<= 1, t = (t*t) % MOD )
		if( mask & P )
			r = (r * t) % MOD;

	printf( "%lld\n", r );

	return 0;
}