500.py
№3. На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N чётное, то в этой записи каждая единица заменяется на 11;
б) если число N нечётное, то в этой записи каждый нуль заменяется на 00.
Полученная таким образом запись является двоичной записью искомого числа R.
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 4₁₀ = 100₂
результатом является число 1100₂ = 12₁₀,
а для исходного числа 5₁₀ = 101₂ это число 1001₂ = 9₁₀.
Укажите минимальное число N,
после обработки которого с помощью этого алгоритма
получается число R, большее 70.
"""
№3. На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N чётное, то в этой записи каждая единица заменяется на 11;
б) если число N нечётное, то в этой записи каждый нуль заменяется на 00.
Полученная таким образом запись является двоичной записью искомого числа R.
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 4₁₀ = 100₂
результатом является число 1100₂ = 12₁₀,
а для исходного числа 5₁₀ = 101₂ это число 1001₂ = 9₁₀.
Укажите минимальное число N,
после обработки которого с помощью этого алгоритма
получается число R, большее 70.
"""
for N in range(1, 1000):
binary = bin(N)[2:]
if N % 2 == 0: # если число чётное
binary = binary.replace("1", "11") # каждая единица заменяется на 11
else: # если число нечётное
binary = binary.replace("0", "00") # каждый нуль заменяется на 00
R = int(binary, 2) # переводим двоичную запись в десятичную
if R > 70:
print(N) # 14 (R = 126)
break
"""
Ответ: 14
""""""
№3. На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N чётное, то в этой записи каждая единица заменяется на 11;
б) если число N нечётное, то в этой записи каждый нуль заменяется на 00.
Полученная таким образом запись является двоичной записью искомого числа R.
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 4₁₀ = 100₂
результатом является число 1100₂ = 12₁₀,
а для исходного числа 5₁₀ = 101₂ это число 1001₂ = 9₁₀.
Укажите минимальное число N,
после обработки которого с помощью этого алгоритма
получается число R, большее 70.
"""
for N in range(1, 1000):
binary = bin(N)[2:]
if N % 2 == 0: # если число чётное
binary = binary.replace("1", "11") # каждая единица заменяется на 11
else: # если число нечётное
binary = binary.replace("0", "00") # каждый нуль заменяется на 00
R = int(binary, 2) # переводим двоичную запись в десятичную
if R > 70:
print(N) # 14 (R = 126)
break
"""
Ответ: 14
"""