Cod sursa(job #799487)

Utilizator alexarnautuArnautu Alexandru alexarnautu Data 19 octombrie 2012 08:24:24
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>
#include <cmath>

using namespace std;

FILE * iFile;
FILE * oFile;

int n, p, a, rez;

void read()
{
	fscanf(iFile, "%d %d", &n, &p);
}

void solve()
{
	int i;
	
	rez = 1;
	a = 1;
	
	for(i=0;i<=32;i++)
	{
		if((p >> i) & 1)
			rez = (rez * (int)pow((double)n, (double)a))%1999999973; 
		a = a * 2;
	}
		
}

void write()
{
	fprintf(oFile, "%d", rez);	
}

int main()
{
	iFile = fopen("lgput.in", "r");
	oFile = fopen("lgput.out", "w");
	
	read();
	solve();
	write();
	
	fclose(iFile);
	fclose(oFile);
	
	return 0;
}