Cod sursa(job #1249464)

Utilizator dinuandAndrei-Mario Dinu dinuand Data 26 octombrie 2014 23:43:36
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>

#define MOD 1999999973

long long ridic(int baza, int exp)
{
	if (exp == 0)
		return 1;
	int tmp = ridic(baza, exp / 2);
	if (exp % 2 == 1) return ((tmp * tmp) % MOD * baza) % MOD;
	else return (tmp * tmp) % MOD;
}

int main() 
{
	FILE *fdin = fopen("lgput.in", "r");
	FILE *fdout = fopen("lgput.out", "w");
	long long N, P;
	fscanf(fdin, "%lld%lld", &N, &P);
	long long rezultat = ridic(N, P);
	fprintf(fdout, "%lld\n", rezultat);
	fclose(fdin);
	fclose(fdout);
	return 0;
}