Cod sursa(job #1335314)

Utilizator kiwiIonescu Maria kiwi Data 5 februarie 2015 13:19:43
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<fstream>
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
#define m 1999999973
int n,x;

/*long long putere(int x,int n)
{
	int k=n;long long a;
	if(n==0) return 1;
	else
		if(k%2==0)
			{a=putere(x,n/2)%m;return a*a%m;}
		else
			return ((putere(x,n-1))*x%m)%m;
}*/

long long putere(int x,int n)
{
	long long p=1;
	while(n)
	{
		if(n&1){p=p*x%m;n--;}
		x=x*x%m;
		n>>=1;
	}
	return p;
}

int main()
{
	f>>x>>n;
	g<<putere(x,n);
	return 0;
}