Исмагил Рустемович
Профи
(785)
4 месяца назад
def binary_to_decimal(binary):
decimal = 0
for digit in binary:
decimal = decimal * 2 + int(digit)
return decimal
def apply_algorithm(N):
binary_N = bin(N)[2:]
if N % 2 == 0:
new_binary = binary_N + '01'
else:
new_binary = '11' + binary_N + '0'
return binary_to_decimal(new_binary)
for N in range(10001):
result = apply_algorithm(N)
if result > 1021:
print(f'Для N = {N}, результат равен {result}')
break
Строится двоичная запись числа N.
К этой записи дописываются ещё несколько разрядов по следующему правилу: если N чётное, то к нему справа дописывается 01, если N нечетное – слева дописывается 11 и справа 0;
Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом:
Двоичная запись числа N: 1101 .
Число нечетное, следовательно слева дописываем 11 , справа 0 → 1111010 .
На экран выводится число 122.
Для какого наименьшего значения N возможно, что в результате работы программы на экране появилось число, большее 1021.
Нужно очень срочно, заранее спасибо!