Cod sursa(job #599003)

Utilizator dspMihaiDespotovici Mihai dspMihai Data 27 iunie 2011 18:45:17
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <stdio.h>
#define MOD 1999999973
unsigned long xs,ps,rez;

long put(long x, long n)
{
	if (n==0) return 1;
	else if (n<0) return (1/put(x,-n));
	else if (n%2==0) return (put(x,n/2)*put(x,n/2));
	else if (n%2==1) return (x*put(x,(n-1)/2)*put(x,(n-1)/2));
}

int main ()
{
	FILE *f, *g;
	f=fopen("lgput.in", "r");
	fscanf(f, "%d %d", &xs,&ps);
	g=fopen("lgput.out", "w");
	fprintf(g, "%d", put(xs,ps)%MOD);
	fclose(f); fclose(g);
	return 0;
}