Cod sursa(job #1039955)

Utilizator bghimisFMI Ghimis Bogdan bghimis Data 23 noiembrie 2013 19:34:39
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <fstream>
using namespace std;

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

long long put(int b, int p, int mod = 1999999973)
{
	if (p == 0) return 1;

	if (p % 2 == 0)
	{
		long long put2 = put (b, p / 2);
		return put2 * put2 % mod;
	}
	else
		return b * put(b, p - 1);
}

int main()
{
	int b, p;
	
	in >> b >> p;
	out << put (b, p);

	in .close();
	out.close();
}