Cod sursa(job #634533)

Utilizator dany123Florea Daniel dany123 Data 16 noiembrie 2011 17:17:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
//ridicare la putere in log 16.11.2011
#include<iostream>
#include<fstream>
using namespace std;
typedef long long int2;
int2 n,p;
const int2 mod=1999999973;

int2 putere_log(int2 n, int2 p)
{
	if (p==0) return 1;
	if (p%2==0) return putere_log (n*n%mod,p/2)%mod;
	else if (p%2==1) return n*putere_log(n*n%mod,p/2)%mod;
}
int main ()
{
	ifstream fin ("lgput.in");
	ofstream fout("lgput.out");
	fin>>n>>p;
	fout<<putere_log(n,p);
	fin.close(); fout.close();
	return 0;
}