На вход алгоритма подаётся натуральное число (). Алгоритм строит по нему новое число следующим образом.
-
Строится двоичная запись числа .
-
Далее эта запись обрабатывается по следующему правилу: а) если число чётное, то к этой записи дописываются справа последние две цифры записи в том же порядке, в котором они идут в самой записи; б) если число нечётное, то к этой записи дописываются справа последние три цифры записи в том же порядке, в котором они идут в самой записи.
Полученная таким образом запись является двоичной записью искомого числа .
-
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа результатом является число , а для исходного числа это число . Укажите минимальное число , после обработки которого с помощью этого алгоритма получается число , большее 256.
Решение:
Решение на Python:
for N in range(3, 200):
N2 = bin(N)[2:]
if N % 2 == 0:
N2 = N2+N2[-2:]
else:
N2 = N2+N2[-3:]
R = int(N2, 2)
if R > 256:
print(N)
Ответ: 33