Cod sursa(job #1337436)

Utilizator IulianBoboUAIC Boboc Iulian IulianBobo Data 8 februarie 2015 23:58:39
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <fstream>
using namespace std;

#define MOD 1999999973LL

long long n, p, x,y;

ifstream f("lgput.in");
ofstream g("lgput.out");

void compute()
{
	x = n;
	y = 1;
	while (p > 1)
	{
		if (p % 2 == 1)
		{
			y = y*x % MOD;
			x = x*x % MOD;
			p = (p - 1) / 2;
		}
		else
		{
			x = x*x % MOD;
			p /= 2;
		}
	}
	g << ( (y * x) % MOD );
}


int main()
{
	f >> n >> p;
	compute();
	f.close();
	g.close();
}