best_n = 0
max_r = 0
for n in range(1, 1000):
b = bin(n)[2:]
if n % 2 == 0:
# Для чётных: слева '1', справа дважды последняя цифра
r_bin = '1' + b + b[-1] * 2
else:
# Для нечётных: слева '10', справа две последние цифры
if len(b) < 2:
b = '0' + b # Добавляем незначащий ноль, если число состоит из одной цифры
r_bin = '10' + b + b[-2:]
r = int(r_bin, 2)
# Ищем максимальное r, не превышающее 2000, и запоминаем N
if r <= 2000:
if r > max_r:
max_r = r
best_n = n
print(best_n)
Ответ для поля ввода:
244