Cod sursa(job #1337428)

Utilizator IulianBoboUAIC Boboc Iulian IulianBobo Data 8 februarie 2015 23:45:05
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 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 = (x *x) % MOD * (n % MOD) % MOD;
			x = x*x % MOD;
			p = (p - 1) / 2;
		}
		else
		{
			y = (x * x) % MOD;
			x = x*x % MOD;
			p /= 2;
		}
	}
	g << y;
}


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