Cod sursa(job #191862)

Utilizator Omega91Nicodei Eduard Omega91 Data 29 mai 2008 12:02:12
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>
#define MOD 1999999973

unsigned long long putere(unsigned long long n, unsigned long long p)
{
	if (!p) return 1;
	if (p & 1) return (n * putere(n, p - 1)) % MOD;
	else {
		unsigned long long q;
		q = putere(n, p / 2) % MOD;
		return (q * q) % MOD;
	}
}

int main()
{
	unsigned long long n, p;
	FILE *f1, *f2;
	f1 = fopen("lgput.in", "r");
	f2 = fopen("lgput.out", "w");
	fscanf(f1, "%llu %llu", &n, &p);
	fprintf(f2, "%llu\n", putere(n, p) % MOD);
	fclose(f1);
	fclose(f2);
	return 0;
}