Проблема с циклом в 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
→ Ссылка