Cod sursa(job #1046420)

Utilizator BuseSorinFMI Buse Sorin-Marian BuseSorin Data 2 decembrie 2013 21:47:23
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <fstream>
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
unsigned long long  a, y, c;
unsigned long long  ridic(long long  b)
{
	if (b == 1) return a;
	if (b % 2 == 0) return (ridic(b / 2) % c)*(ridic(b / 2) % c) % c;
	if (b % 2 == 1) return (ridic(b - 1)*a) % c;
}

int main()
{
	f >> a >> y;
	c = 1999999973;
	a = a%c;
	g << ridic(y);

	f.close();
	g.close();
	return 0;
}