Cod sursa(job #1337412)

Utilizator IulianBoboUAIC Boboc Iulian IulianBobo Data 8 februarie 2015 22:59:17
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <fstream>
using namespace std;

#define MOD 1999999973

long long n, p,x;

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

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


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