Cod sursa(job #584280)

Utilizator informatician28Andrei Dinu informatician28 Data 24 aprilie 2011 21:11:03
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <cstdio>

using namespace std;
 
unsigned long long x,y,m;
long long put(long long x, long long y)
{
long long p = 1 ;
while (y > 0)
{
if (y & 1) // n este impar
{
p =(p* x)%m;
y-- ;
}
x =( x * x)%m ;
y >>= 1 ; // sau y = y / 2
}
return p;
} 
int main(){
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
m=1999999973;
scanf("%lld%lld",&x,&y);
printf("%lld\n",put(x,y));
return 0;
}