Cod sursa(job #1609810)

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

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

int main(){

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

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