Целая часть от деления: 37 div 2 = 18 18 div 2 = 9 9 div 2 = 4 4 div 2 = 2 2 div 2 = 1 1 div 2 = 0
Остаток от деления: 37 mod 2 = 1 18 mod 2 = 0 9 mod 2 = 1 4 mod 2 = 0 2 mod 2 = 0 1 mod 2 = 0
1) Остаток от деления 37 на записываем в обратном порядке. Получаем число в 2-ой системе счисления: 100101 37 = 100101(2)
2) Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения. 0.375*2 = 0.75 (целая часть 0) 0.75*2 = 1.5 (целая часть 1) 0.5*2 = 1 (целая часть 1) 0*2 = 0 (целая часть 0) Получаем число в 2-ой системе счисления: 0110 0.375 = 0110(2)
program test;
var
n, m: integer;
max: integer;
count: integer;
number: integer;
i: integer;
function GetDividersCount(number: integer): integer;
var
limit: integer;
count: integer;
i: integer;
begin
limit := number div 2;
count := 0;
for i := 1 to limit do
if number mod i = 0 then
count := count + 1;
result := count;
end;
begin
write('Enter range: ');
read(n, m);
max := 0;
for i := n to m do
begin
count := GetDividersCount(i);
if max < count then
begin
max := count;
number := i;
end;
end;
writeln('Result: ', number);
end.