Почему команда while работает в этом случае?

Код для решения задачки из ЕГЭ.

l = 0
m = 0
x = 126464
d = 0
while (m != 4) and (l != 13):
    x += 1
    d = x
    l = 0
    m = 0
    while d > 0:
        m += 1
        if d % 8 > 4:
            l = l + (d % 8)
        d = d // 8
    print(l)
    print(m)
print (x)

Ответы (1 шт):

Автор решения: splash58

вы неправильно записываете условие

Программа должна завершить свою работу, когда переменная m будет равна 4, а L будет равна 13

должно быть :

while not ((m == 4) and (l == 13)):

или, что тоже самое

while (m != 4) or (l != 13):
→ Ссылка