На вход алгоритма подаётся натуральное число . Алгоритм строит по нему новое число
следующим образом.
1) Строится шестнадцатеричная запись числа , где «
» — операция деления нацело.
2) К этой записи дописывается еще три разряда по следующему правилу:
а) если не делится на 4, то слева к нему приписывается «
», а справа «
».
б) в противном случае слева приписывается «», а справа «
».
Например, .
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа ) является шестнадцатеричной записью искомого числа
.
Укажите наибольшее число , для которого результат работы алгоритма меньше
. В ответ запишите это число в десятичной системе счисления.
for i in range(1000000, 0, -1):
s = hex(i // 2)[2:]
if i % 4 != 0:
s = ’f’ + s + ’a0’
else:
s = ’15’ + s + ’c’
if int(s, 16) < 1048576:
print(i)
break
Ответ: 511