Cod sursa(job #750380)

Utilizator Agent008Cristi Poputea Agent008 Data 21 mai 2012 23:08:34
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<iostream.h>
#include <fstream>
#define MOD 1999999973
using namespace std;
fstream f("lgput.in",ios::in), g("lgput.out",ios::out);
long long putere(int a, int b, int m);
int main()
{
	int a,b;
	long long af;
	f>>a>>b;
	af=putere(a,b,MOD);
	g<<af;
	cout<<af;
	return 0;
}
long long putere(int a, int b, int m)
{
	if(b==1)
		return a;
	if(b==0) 
		return 1;
	long long rez=1;
	rez=putere(a,b/2,m);
	rez=(rez*rez)%m;  
	if (b%2) // b - impar
		rez*=a;
	return rez%m;
}