Cod sursa(job #612602)

Utilizator VoodooKidRotund Bogdan VoodooKid Data 8 septembrie 2011 22:54:21
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.4 kb
#include <stdio.h>

long fast_expo(long n, long p)
{
	if (p == 0)
		return 1;
	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 n, p, m = 1999999973;
	
	fscanf(f, "%ld %ld", &n, &p);
	
	fprintf(g, "%ld", fast_expo(n, p) % m);
	
	return 0;
}