Алгоритм получает на вход натуральное число N и строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. В конец двоичной записи добавляется двоичный код остатка от деления числа N на 4.
3. Результатом работы алгоритма становится десятичная запись полученного числа R.
Пример 1. Дано число N = 13. Алгоритм работает следующим образом.
1. Строим двоичную запись: 1310 = 11012.
2. Остаток от деления 13
3. Результат работы алгоритма R = 27.
Пример 2. Дано число N = 14. Алгоритм работает следующим образом.
1. Строим двоичную запись: 1410 = 11102.
2. Остаток от деления 14
3. Результат работы алгоритма R = 58.
Назовем доступными числа, которые могут получиться в результате работы этого алгоритма. Например,
Какое наибольшее количество доступных чисел может быть на отрезке, содержащем
Приведём решение на языке Python.
t = [0]*10000
for n in range(1,1000):
s = bin(n)[2:] + bin(n%4)[2:]
r = int(s,2)
t[r] = 1
maxi = 0
for i in range(1000):
maxi = max( maxi, sum(t[i : i + 49]))
print(maxi)
Ответ: 19.

