Как вывести ответ только в случае, когда a = 2, и b = 4 при максимальном i?

for i in range(0, 1000000):
    x = i
    a = 0
    b = 0
    while x > 0:
        if x % 2 == 0:
            a += 1
        else:
            b += x % 10
        x = x // 10

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

Автор решения: Эникейщик

Для максимального i надо начинать не с 0, а сразу с конца. Как только а и б достигнут нужных значений, то задача решена.

→ Ссылка
Автор решения: Zhihar

т.е. задача "найти натуральное число такое у которого 2 цифры чётные и сумма нечетных цифр равно 4"

очевидно что нечетные цифры - это или 1, 1, 1, 1 или 1, 3, таким образом максимально возможное число - это

881111

а касательно самого вопроса - идите с конца:

for i in range(1000000, 0, -1):
    x = i
    a = 0
    b = 0
    while x > 0:
        if x % 2 == 0:
            a += 1
        else:
            b += x % 10
        x = x // 10

    if a == 2 and b == 4:
        print(i)
        break

ну или если чуть покороче :)

for i in range(1000000, 0, -1):
    a, b, x = 0, 0, i

    while x > 0:
        a, b, x = (a + 1, b, x // 10) if x % 2 == 0 else (a, b + x % 10, x // 10)

    if a == 2 and b == 4:
        print(i)
        break
→ Ссылка