Cod sursa(job #1113626)

Utilizator cernat.catallinFMI Cernat Catalin Stefan cernat.catallin Data 20 februarie 2014 19:35:27
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <stdio.h>

#define MOD 1999999973
typedef long long int lli;

lli exp(lli n, lli p){
	if (p == 1)
		return n;
	if (p % 2 == 0)
		return	exp(n * n % MOD, p / 2);
	else
		return n * exp(n * n % MOD, p / 2) % MOD;
}

int main(){
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);
	lli n, p;

	scanf("%lld %lld", &n, &p);
	fclose(stdin);

	printf("%lld", exp(n, p));
	fclose(stdout);

	return 0;
}