Cod sursa(job #331297)
Utilizator | Data | 13 iulie 2009 16:27:36 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.32 kb |
#include<stdio.h>
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
long r, N, P, pp=2;
int ok;
scanf("%ld %ld", &N, &P);
if(P%2==0)ok=0;
else {ok=1;P-=1;}
r=N;
while(P)
{
N*=N;
P/=pp;
pp*=pp;
}
if(ok)N*=r;
printf("%ld\n",N);
return 0;
}