25.04.2025

5_13091 Доступные числа

# Алгоритм получает на вход натуральное число N и строит по нему новое
# число R следующим образом.
# 1) Строится двоичная запись числа N.
# 2) В конец двоичной записи добавляется двоичный код остатка от деления
# числа N на 4
# 3) Результатом работы алгоритма становится десятичная запись полученного числа R.
a=[]
for N in range(1,10000):
    n=bin(N)[2::]
    # print(n)
    n=n+bin(N%4)[2::]
    # print(n)
    r=int(n,2)
    # print(r)
    # print(r)
    a.append(r)
# print(a)
b=[0]*(max(a)+1)

for i in a:
    b[i]=1
print(b)


m=0
for i in range(len(b)-65):
    srez=b[i:i+65]
    m=max(m,sum(srez))
print(m)