Cod sursa(job #192831)

Utilizator stefysStefan stefys Data 31 mai 2008 18:21:29
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>
#include <stdlib.h>

int lgpow (int base, int exp)
{
	int a;
	if (!exp) return 1;
	//int ret=base;
	//while (exp>1) { ret *= base; base *= base; exp /= 2; }
	//return ret;
	return (a=lgpow(base,exp/2))*a*(exp%2==0?1:base);
}

int main (void)
{
	FILE *in, *out;
	int base, exp;
	
	in  = fopen("lgput.in", "r");
	out = fopen("lgput.out", "w+");
	
	if (!in || !out) { printf("WTF?"); exit(-1); }
	
	fscanf(in, "%d %d", &base, &exp);
	fprintf(out, "%d\n", lgpow(base, exp)%1999999973);
	
	fclose(in); fclose(out);
}