Cod sursa(job #412576)

Utilizator b_polarAgape Mihai b_polar Data 5 martie 2010 20:13:25
Problema Ridicare la putere in timp logaritmic Scor 30
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;}
long long expmod(int n,int p)
{
	if(p==0)return 1;
	else if(p%2)return (n*(patrat(expmod(n,p>>1)))%MOD)%MOD;
	else return (patrat(expmod(n,p>>1)))%MOD;
}