Код:
def build_new_number(n):
# Шаг 1: Получаем двоичную запись числа n без префикса '0b'
binary_representation = bin(n)[2:]
# Шаг 2: Применяем правило для построения новой записи
if n % 2 == 0:
# Если число четное, дописываем 10 слева
new_binary = '10' + binary_representation
else:
# Если число нечетное, дописываем 1 слева и 01 справа
new_binary = '1' + binary_representation + '01'
# Преобразуем новую двоичную запись обратно в десятичное число
R = int(new_binary, 2)
return R
def find_max_R(limit):
max_R = 0
for n in range(1, limit + 1):
current_R = build_new_number(n)
if current_R > max_R:
max_R = current_R
return max_R
# Определяем максимальное число R для чисел от 1 до 12
max_result = find_max_R(12)
print(max_result)