26.04.2025

Поляков р5 №88

#     88) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R
#     следующим образом.
# 1) Строится двоичная запись числа N.
# 2) К этой записи дописывается справа бит чётности: 0, если в двоичном коде числа N было чётное число единиц,
#     и 1, если нечётное.
# 3) К полученному результату дописывается ещё один бит чётности.
# Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является
#     двоичной записью искомого числа R. Укажите минимальное число N, после обработки которого с помощью
#     этого алгоритма получается число, большее, чем 103. В ответе это число запишите в десятичной системе.

for N in range(1,100000):
    n=bin(N)[2::]
    b=n.count("1")
    if b%2==0:
        n=n+"0"
    else:
        n=n+"1"
    b=n.count("1")
    if b%2==0:
        n=n+"0"
    else:
        n=n+"1"
    r=int(n,2)
    if r>103:
        print(N)

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