program RoundToPreviousPowerOf2;
uses
Math;
function RoundDownToPowerOf2(n: Integer): Integer;
begin
if n <= 0 then
RoundDownToPowerOf2 := 0
else
RoundDownToPowerOf2 := Round(IntPower(2, Floor(Log2(n))));
end;
var
num: Integer;
begin
num := 31;
WriteLn('Previous power of 2: ', RoundDownToPowerOf2(num));
end.
(*
run:
Previous power of 2: 16
*)