Cod sursa(job #1452347)

Utilizator Player1Player 1 Player1 Data 20 iunie 2015 16:46:38
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include <stdio.h>

long long n,p,result = 1;

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

	if(p % 2 == 0)
		result = compute(n*n, p/2);
	else {
		result = n * compute(n*n, (p-1)/2);
	}

}

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

	compute(n,p);

	printf("%lld", result);
	return 0;
}