Cod sursa(job #1347391)

Utilizator muraru_georgeMuraru George Cristian 323CB muraru_george Data 18 februarie 2015 22:31:05
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.47 kb
#include <stdio.h>

#define a 1999999973

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

	if (pow == 1)
		return number;

	int tmp = pow / 2;

	if (pow % 2 == 1)
		return number * power(number * number, tmp) % a; 

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

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", power(num, pow));

	return 0;
}