Cod sursa(job #412576)
Utilizator | Agape 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;
}