не понимаю почему не работает перебор
for x in range (100,1000):
s = x
l = 0
m = 0
while x > 0:
m = m + 1
if (x % 2) != 0:
l = l + x % 8
x = x // 8
if (m == 14 and l == 3):
print(m,l,x)
Ниже на пяти языках программирования записан алгоритм. Получив на вход натуральное десятичное число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 14, а потом 3.
Ответы (1 шт):
Автор решения: 4500zenja
→ Ссылка
В оригинале задания ЕГЭ написан вот такой код:
x = int(input())
L = 0
M = 0
while x > 0 :
M = M+1
if (x % 2) != 0:
L = L + x % 8
x = x // 8
print(L)
print(M)
Он подразумевает, что первым числом будет L, а вторым — M. У Вас же первое число M, а второе — L, поэтому программа и не выводит значения.
Просто поменяйте местами данными переменные в условии проверки, и всё должно заработать