На вход алгоритма подаётся натуральное число . Алгоритм строит по нему новое число следующим образом.
-
Строится двоичная запись числа .
-
Далее эта запись обрабатывается по следующему правилу:
а) если число делится на 5, то к этой записи дописывается справа две единицы;
б) если число на 5 не делится, то результат целочисленного деления на 5 переводится в двоичную систему счисления и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомогочисла .
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 20 = результатом является число = 83, а для исходного числа 14 = результатом является число = 58.
Укажите **минимальное **чётное число , для которого с помощью описанного алгоритма получается число, превышающее 896. В ответе запишите это число в десятичной системе счисления.
Решение:
Решение на Python:
otv = []
for N in range(1, 1000):
R = bin(N)[2:]
if N % 5 == 0:
R += '11'
else:
R += bin(N // 5)[2:]
R = int(R, 2)
if N % 2 == 0 and R > 896:
otv.append(N)
print(min(otv))
Ответ: 56