Cod sursa(job #973606)

Utilizator the_chosen_oneCristian Badea the_chosen_one Data 14 iulie 2013 20:25:27
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include<stdio.h>
#include<math.h>
FILE *Fin=fopen("lgput.in","r"), *Fout=fopen("lgput.out","w");
long int x,p,y=1999999973;
int main ()
{
	fscanf(Fin,"%d",&x);
	fscanf(Fin,"%d",&p);
	if(p%2==1 && p>2)
		x=x*pow(x*x,(p-1)/2);
	else
		if(p!=0)
			x=pow((x*x),(p/2));
	if(x<y)
		fprintf(Fout,"%d",x);
	else
		fprintf(Fout,"%d",x%y);
	fclose(Fin);
	fclose(Fout);
	return 0;
}