<span>Делим число на 2 и выписываем остатки</span>
<span>536 = 268·2 + </span>0
<span>268 = 134·2 + </span>0
<span>134 = 67·2 + </span>0
<span>67 = 33·2 + </span>1
<span>33 = 16·2 + </span>1
<span>16 = 8·2 + </span>0
<span>8 = 4·2 + </span>0
<span>4 = 2·2 + </span>0
<span>2 = 1·2 + </span>0
<span>Последний множитель перед 2 равный </span>1<span> записываем первым.</span>
<span>Затем записываем найденные остатки в обратном порядке.</span>
<span>Получаем: </span>1000011000
===== PascalABC.NET =====
begin
Range(6, 97, 2).Aggregate(BigInteger.One, (p,q) -> p*q).Println
end.
Для того, чтобы составить трассировочную таблицу, нужно иметь сам алгоритм. Позволю предположить, что там было нечто вроде такого (запись на языке кумир):
алг бинвдес
нач
цел N2, k, N10
ввод N2
k := 1
N10 := 0
нц пока N2<>0
N10 := N10 + mod(N2, 10) * k
k := k * 2
N2 := div(N2, 10)
кц
вывод N10
<span>кон
</span>
Таблица во вложении
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var (a,b,c):=ReadInteger3('a,b,c =');
var k:= ReadInteger('k =');
var (x,y,z):=ReadInteger3('x,y,z =');
Writeln(min(x div(a*k),min(y div(b*k), z div(c*k))));
end.
<u>Пример:</u>
a,b,c = 2 3 4
k = 2
x,y,z = 4 8 19
1