Cod sursa(job #401542)

Utilizator dexter_dexMutascu Adrian - Dragos dexter_dex Data 22 februarie 2010 22:09:00
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <stdio.h>
#define MOD 1999999973


long long int x, rezultat = 1, n;

int main(){
	
	FILE * f = fopen ("lgput.in", "r");
	FILE * g = fopen ("lgput.out", "w");
	
	fscanf (f, "%lld %lld", &x, &n);
	while (n){
		if (n % 2 == 0){
			x *= x;
			n /= 2;
		}
		
		else{
			rezultat *= x;
			n--;
			x *= x;
			n /= 2;
		}
		
		rezultat %= MOD;
	}
	
	
	fprintf(g, "%lld", rezultat);
	
	fclose(f);
	fclose(g);
	return 0;
}