Функция проверки делимости числа на каждую из его цифр

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. (определить функцию проверки делимости числа на каждую из его цифр)
2 ответа

если я правильно понял задание, то:
n = int(input())
for i in range(1,n+1):
    for j in range(len(str(i))):
        if int(str(i)[j]) == 0 or i % int(str(i)[j]) != 0:
            break
    else:
        print(i)


версия 1а
n = int(input())
print(*(x for x in range(1, n) if all(num and not x % num for num in (int(a) for a in str(x)))))
версия 1б
n = int(input())
for x in range(1, n):
    if all(num and not x % num for num in (int(a) for a in str(x))):
        print(x, end=' ')
версия 2а
n = int(input())
print(*(x for x in range(1, n) if all(map(lambda a: a and not x % a, (int(a) for a in str(x))))))
версия 2б
n = int(input())
for x in range(1, n):
    if all(map(lambda a: a and not x % a, (int(a) for a in str(x)))):
        print(x, end=' ')