Проблема с циклом в Python
Всем привет.
Решаю задачки из ЕГЭ по Питону, попалась вот такая:
Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 12.
И дан код программы:
x = int(input())
a=0; b=1
while x > 0:
if x%2 > 0:
a += x%8
else:
b = b * (x%8)
x = x//8
print(a, b)
Пытаюсь решить перебором:
a = 0
b = 1
for x in range(1, 10001):
while x > 0:
if x%2 > 0:
a += x%8
else:
b = b * (x%8)
if (a == 2 and b == 12):
print(x)
x = x//8
В итоге программа как будто не отрабатывает, но VS Code никаких ошибок не выдает. Есть подозрение на бесконечный цикл, но не могу понять, что не так с кодом. Подскажите пожалуйста, заранее спасибо.
Ответы (1 шт):
Автор решения: Интик
→ Ссылка
исправлены опечатки, код работает
for i in range(1, 10001):
a=0
b=1
x=i
while x > 0:
if x%2 > 0:
a += x%8
else:
b = b * (x%8)
x = x//8
if (a == 2 and b == 12):
print(a, b, i)
ответы
2 12 598
2 12 626
2 12 654
2 12 689
2 12 906
2 12 913
2 12 1102
2 12 1137
2 12 1417
2 12 3146
2 12 3153
2 12 3209