Cod sursa(job #936582)

Utilizator diana20Dersedan Diana diana20 Data 7 aprilie 2013 19:45:15
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<iostream>
#include<fstream>
using namespace std;
int n,p;

long long pow ( int a, int b )
{
	if(b==1) return a%1999999973;
	if(b%2==0)
	{
		long long r;
		r= pow(a,b/2)%1999999973;
		return (r%1999999973)*(r%1999999973);
	}
	else
	{
		long long r;
		r= pow(a,b/2)%1999999973;
		return ((r%1999999973)*(r%1999999973)*(a%1999999973))%1999999973;
	}
}

int main()
{
	ifstream f("lgput.in");
	ofstream g("lgput.out");
	f>>n>>p;
	if(p==0) 
		g<<1;
	else
		g<<pow(n,p)%1999999973;
	return 0;
}