Cod sursa(job #712409)
Utilizator | Data | 13 martie 2012 13:50:05 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include <fstream.h>
#define mod 1999999973
ifstream f("lgput.in");
ofstream g("lgput.out");
int main()
{
int baza, exponent, x, t=0, i, cifre[1000];
long long p=1;
f>>baza>>exponent;
x=exponent;
while(x)
{
cifre[t]=x%2;
t++;
x=x/2;
}
for(i=t-1; i>=0; i--)
{
if(cifre[i]==0)
{
p=p*p;
}
else
{
p=p*p*baza;
}
if(p>=mod)
{
p=p%mod;
}
}
g<<p;
}