Cod sursa(job #750161)

Utilizator Agent008Cristi Poputea Agent008 Data 21 mai 2012 01:15:10
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<fstream>
#include<iostream>
using namespace std;
fstream f("lgput.in",ios::in), g("lgput.out",ios::out);
long long putere(long long nr,long long p);
long long a,b,c,rez;
int main()
{
	f>>a>>b;
	c=1999999973;
	rez=putere(a,b);
	cout<<rez;
	g<<rez;
	return 0;
}
long long putere(long long nr,long long p)
{
	nr=nr%c;
	if(p==1)
		return nr%c;
	if(p%2==0)
		return putere(nr*nr,p/2);
	else
		return putere(nr*nr*(a%c)*(a%c),(p-1)/2);
}