Cod sursa(job #942450)

Utilizator nicknameLare Nicu nickname Data 22 aprilie 2013 17:21:38
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.37 kb
#include <stdio.h>

int main() {
	FILE* in = fopen("lgput.in", "r");
	FILE* out = fopen("lgput.out", "w");
	long long int n, p, mod = 1999999973, result = 1;
	fscanf(in, "%lld", &n);
	fscanf(in, "%lld", &p);
	while (p > 0) {
		if (p % 2) {
			result = (result * n) % mod;
			p = (p - 1) / 2;
		} else 
			p /= 2;
		n = n * n;
	}
	fprintf(out, "%lld\n", result);
	return 0;
}