Cod sursa(job #412582)

Utilizator b_polarAgape Mihai b_polar Data 5 martie 2010 20:16:00
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <iostream>
#define MOD 1999999973
using namespace std;
long long expmod(int,int);

int main()
{
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	int a,b;
	cin>>a>>b;
	cout<<expmod(a,b)<<"\n";
}

inline long long patrat(long long nr){return (nr*nr)%MOD;}
long long expmod(int n,int p)
{
	if(p==0)return 1;
	else if(p%2)return (n*patrat(expmod(n,p>>1)))%MOD;
	else return (patrat(expmod(n,p>>1)))%MOD;
}