Cod sursa(job #2139890)

Utilizator fylot3Bogdan Filote fylot3 Data 22 februarie 2018 20:58:39
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdio.h>
//#define MOD	1999999973

int MOD = 1999999973;
int N, P;

long long power(int N, int P) {
	
	if (P == 0)
		return 1;

	long long temp = power(N, (P >> 1));
	temp %= MOD;
	temp *= temp;
	temp %= MOD;

	if (P % 2 == 0)
		return temp;
	else
		return (N * temp) % MOD;
}

int main(void) {

	FILE *fin = fopen("lgput.in", "r");
	FILE *fout = fopen("lgput.out", "w");

	fscanf(fin, "%d%d", &N, &P);
	fclose(fin);

	fprintf(fout, "%lld", (power(N, P) % MOD));
	fclose(fout);

	return 0;
}