На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N.
- К этой записи дописывается справа 10, если в двоичном коде числа N было чётное число единиц, и 11, если нечётное.
- К полученному результату дописывается ещё один ноль.
Полученная таким образом запись является двоичной записью искомого числа R.
Укажите количество исходных чисел N, из которых с помощью этого алгоритма могут быть получены числа R, лежащие в диапазоне .
c = 0
for n in range(1, 500):
b = bin(n)[2:]
if b.count(’1’) % 2 == 0:
b += ’10’
else:
b += ’11’
b += ’0’
if int(b, 2) >= 128 and int(b, 2) <= 256:
c += 1
print(c)
Ответ: 16