Cod sursa(job #1609805)

Utilizator Ene_Orlando_Georgian_321CBEne Orlando Georgian Ene_Orlando_Georgian_321CB Data 23 februarie 2016 00:39:40
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.37 kb
#include <stdio.h>

int lgput(int n,int p){
	if(p == 0){
		return 1;
	}
	else if(p == 1){
		return n;
	}
	else if(p%2 == 0){
		return lgput(n*n,p/2);
	}
	else if(p%2 == 1){
		return n*lgput(n*n,(p-1)/2)*n;
	}
}

int main(){

	FILE* in = fopen("lgput.in","r");
	FILE* out = fopen("lgput.out","w");

	int n,p;
	fscanf(in,"%d %d",&n,&p);
	fprintf(out,"%d",lgput(n,p));
	return 0;
}