Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for r in range(43, 100):
- b_b = bin(r).count('1')
- if (b_b%2 == 0) and (r%2 == 0):
- if bin(r)[0:-2].count('1') % 2 == int(bin(r)[len(bin(r))-2]):
- print(r)
- elif bin(r)[0:-2].count('1') % 2 == int(bin(r)[len(bin(r))-2]):
- print(r)
- # На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- #
- # 1) Строится двоичная запись числа N.
- #
- # 2) К этой записи дописываются справа ещё два разряда по следующему правилу:
- #
- # а) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
- #
- # б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на 2.
- #
- # Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
- #
- # Укажите минимальное число R, которое превышает 43 и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе.
Add Comment
Please, Sign In to add comment