Найти в диапазоне число начинающиеся и заканчивающиеся на 8

Пользователь вводит числа a и b , задающие диапазон [a;b]. В этом диапазоне нужно найти числа начинающиеся и заканчивающиеся на 8. Только через цикл while или for , превращать число в str нельзя.


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

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

По добру, надо делать так:

def isValid(num):
    digs = []
    while num > 0:
        digs.append(num % 10)
        num //= 10
    return digs[0] == 8 and digs[-1] == 8


print([i for i in range(int(input()), int(input()) + 1) if isValid(i)])

А если по приколу, то так:

import math
import operator

[  i for i in range(int(input()), int(input()) + 1) if all ( k == 8 for k in operator.itemgetter(0, -1)([ (i // (10 ** x) if x else i) % 10 for x in range(int(math.log10(i) + 1)) ]) )]

P.S. Слишком много промучался, чтобы написать это. Пожалуйста, не ставьте минус. Все ради азарта. И главное, все без str()

→ Ссылка