Cod sursa(job #1483989)

Utilizator mike93Indricean Mihai mike93 Data 10 septembrie 2015 11:55:13
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.51 kb
#include <stdio.h>
#define M 1999999973

long long put(long long n, long long p) {
	if(p == 0) {
		return 1;
	}
	long long res;
	long long inter = put(n, p/2);
	res = (inter * inter) % M;
	if(p % 2 == 1) {
		res = (res * n) % M;
	}
	return res;
}

int main() {
	FILE* fin = fopen("lgput.in", "r");
	long long n, p;
	fscanf(fin, "%lld %lld\n", &n, &p);
	fclose(fin);
	
	long long res = put(n, p);
	
	FILE* fout = fopen("lgput.out", "w");
	fprintf(fout, "%lld\n", res);
	fclose(fout);
	return 0;
}