Cod sursa(job #1452383)

Utilizator Player1Player 1 Player1 Data 20 iunie 2015 17:17:41
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <stdio.h>
#define modulo2 1999999973
long long n,p,result = 1;

long long compute(int n, int p){
	if (p == 0) return 1;
	if (p == 1) return n;

	result = compute(n, p/2);
	result = result * result % modulo2;

	if(p % 2 == 1)
		result = (n * result) % modulo2;

	return result;
}

int main(){
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);
	scanf("%lld %lld ", &n, &p);

	printf("%lld", compute(n,p));
	return 0;
}