Cod sursa(job #2436479)

Utilizator urweakurweak urweak Data 5 iulie 2019 22:12: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%=M;
			prod*= b;
			prod%=M;
		}
		b%=M;
		b*= b;
		b%=M;
		p/=2;
	}
	return prod;
}

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