Cod sursa(job #1553445)

Utilizator D4n13LMuntean Dan Iulian D4n13L Data 19 decembrie 2015 21:01:23
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.44 kb
#include<stdio.h>
#include<stdlib.h>

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

	if( p %2  == 0)
		return logpower(n*n, p/2)%1999999973;
	return n * logpower(n*n,(p-1)/2) % 1999999973;
}	

int main(void)
{
	FILE * fin = fopen("lgput.in","rt");
	FILE * fout = fopen("lgput.out","wt");
	int n,p;
	fscanf(fin,"%d%d",&n,&p);
	int rp = logpower(n,p);
	fprintf(fout,"%d\n",rp);
	fclose(fin);
	fclose(fout);
	return 0;
}