На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N чётное, то к этой записи справа и слева дописываются по две единицы;
б) если число N нечётное, то в конец двоичной записи (справа) дописываются два нуля, а в начало (слева) дописывается единица.
Полученная таким образом запись (в ней на три или четыре разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 1310 = 11012 результатом является число 11101002 = 11610, а для исходного числа 610 = 1102 это число 11110112 = 12310.
Укажите наименьшее число R, превышающее 95, которое может быть результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Приведём решение на языке Python.
otv = []
for N in range(2, 1000):
S = bin(N)[2:]
if N%2 == 0:
R ='11' + S + '11'
else:
R = '1' + S + '00'
if int(R,2) > 95:
otv.append(int(R,2))
print(min(otv))
Ответ: 100.

