Cod sursa(job #612606)

Utilizator VoodooKidRotund Bogdan VoodooKid Data 8 septembrie 2011 23:29:55
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.45 kb
#include <stdio.h>
#define M 1999999973

long long fast_expo(long long n, long long p)
{
	if (p == 0)
		return 1;
	long long res = fast_expo(n, p / 2) * fast_expo(n, p / 2);
	if (p % 2 != 0)
		res *= n;
	return res;
}

int main()
{
	FILE *f = fopen("lgput.in","rt");
    FILE *g = fopen("lgput.out","wt");

	long long n, p;

	fscanf(f, "%lld %lld", &n, &p);
	fprintf(g, "%lld", fast_expo(n, p) % M);

	fclose(f);
	fclose(g);
	return 0;
}