Cod sursa(job #170172)

Utilizator alle_forever13Alexandra Retegan alle_forever13 Data 2 aprilie 2008 14:27:39
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<stdio.h>

#define input "lgput.in"
#define output "lgput.out"

long pow(long x, long y);

long n, p;

int main()
{
	FILE *in, *out;

	in = fopen (input, "r");
	out = fopen (output, "w");

	fscanf(in, "%ld%ld", &n, &p);

	fprintf(out, "%ld", pow(n, p)%1999999973);

	return 0;

}

long pow(long x, long y)
{
	long prod = 1;

	while(y)
	{
		if(y%2 == 1)
		{
			prod = prod * x;
			prod = prod % 199999999973;
			y-=1;
		}

		x *= x;
		y /= 2;
	}

	return prod;

}