Cod sursa(job #1337407)

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

#define MOD 1999999973

unsigned long n, p;

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

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


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