Cod sursa(job #675099)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 7 februarie 2012 10:16:22
Problema Ridicare la putere in timp logaritmic Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<fstream>
#define modul 1999999973
using namespace std;

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

unsigned long long sqr (unsigned long long x)
{
	return (x%modul)*(x%modul);
}

unsigned long long putere (unsigned long long x,unsigned long long y)
{
	if (y==0) return 1;
	else if (y%2==0)
		return sqr(putere(x,y/2)%modul)%modul;
	else if (y%2==1)
		return x*sqr(putere(x,(y-1)/2)%modul)%modul;
}

int main ()
{
	unsigned long long n,p,rez;
	f>>n>>p;
	rez=putere(n,p)%modul;
	g<<rez;
	return 0;
}