Cod sursa(job #604217)
Utilizator | Data | 20 iulie 2011 23:44:08 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
Program putere_logaritmica;
const rest=1999999973;
var a,n,s:int64;
fi,fo:text;
begin
assign(fi,'lgput.in');
assign(fo,'lgput.out');
reset(fi);
rewrite(fo);
readln(fi,a,n);
s:=1;
while n>0 do
if n mod 2=0 then begin
a:=(a*a) mod rest;
n:=n div 2;
end
else begin
s:=(s*a) mod rest;
dec(n);
end;
write(fo,s);
close(fo);
end.