26.04.2025

Поляков 5-282

#     282) (Пробный КЕГЭ, 2022) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему
#     новое число R следующим образом.
# 1. Строится двоичная запись числа N.
# 2. К этой записи дописываются ещё несколько разрядов по следующему правилу:
# а) Если N чётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;
# 6) Если N нечётное, то к нему справа приписываются два нуля, а слева единица.
# Например, двоичная запись числа 1101 будет преобразована в 1110100.
# Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N)
#     является двоичной записью искомого числа R.
# Укажите наименьшее число N, для которого результат работы данного алгоритма больше 215. В ответе это число
#     запишите в десятичной системе счисления.

for N in range(1,1000):
    n = bin(N)[2::]
    if n[-1] == '0':
        n = n + bin(n.count('1'))[2::]
    else:
        n = '1' + n + '00'
    r=int(n,2) # перевод в десятичную в любую другую (в этом случаи двоичная)
    if r>215:
        print(N)

Добавить комментарий