Cod sursa(job #1363516)

Utilizator muraru_georgeMuraru George Cristian 323CB muraru_george Data 27 februarie 2015 00:26:16
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.51 kb
#include <stdio.h>

#define a 1999999973

long power(int number, int pow)
{
	if (pow == 0)
		return 1;

	if (pow == 1)
		return number;

	int tmp = pow / 2;

	if (pow % 2 == 1) {
		long rez = power((number * number), tmp);
		return  (number * rez * rez);
	}

	return power((number * number), tmp);
}

int main(void)
{
	FILE *f_in = fopen("lgput.in", "rt");
	FILE *f_out = fopen("lgput.out", "wt");
	int num, pow;

	fscanf(f_in, "%d %d", &num, &pow);
	fprintf(f_out, "%d", (int) (power(num, pow) % a));

	return 0;
}