Cod sursa(job #2436483)

Utilizator urweakurweak urweak Data 5 iulie 2019 22:19:25
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
//============================================================================
// Name        : doing.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C, Ansi-style
//============================================================================

#include <iostream>
#include <fstream>
#define ll long long
#define M 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");

ll pow(int b, int p)
{
	ll prod = 1;
	while(p > 0)
	{
		if(p & 1)
		{
			prod = (prod % M) * (b % M);
		}
		b = (b % M) * (b % M);
		p/=2;
	}
	return prod;
}

int main()
{
	int b, p;
	fin >> b >> p;
	fout << (pow(b, p) % M);
	return 0;
}