Cod sursa(job #1553450)

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

#define C 1999999973

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

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

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