n = int(input()) # n = 2428
dx = []
x = n
while x > 0:
if n % (x % 10) == 0:
if str(x % 10) not in dx:
dx.append(str(x % 10))
x = x // 10
dx.sort()
print(len(dx))
print(' '.join(dx))
Объяснение:
n = int(input()) # n = 2428
dx = []
x = n # чтобы не изменить число, вводим новую переменную x = 2428
while x > 0:
if n % (x % 10) == 0: # находим остаток от деления на последнюю цифру 2428 % (8) != 0
if str(x % 10) not in dx: # если цифры нет в списке
dx.append(str(x % 10)) # добавляем в список в строковом формате
x = x // 10 # отбрасываем последнюю цифру от числа x = 242
dx.sort() # сортируем список по возрастанию
print(len(dx))
print(' '.join(dx))
Это таблица истинности для логических функций. Галочка вверх означает логическое И, галочка вниз - логическое ИЛИ, уголок перед переменной - логическое НЕ. Это тема обширная, и так что если я представлю здесь решение это все равно вам не понять. Вам нужно почитать о логических функциях и таблицах истинности.
Вот как выглядит решение. Поставляем значения из таблицы истинности в варианты функций. Та функция, результат которой совпадает с результатом из таблицы, является ответом. В данном случае это номер 2