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))
ответ:Дерево игры - в прилагаемом файле. У игрока, делающего ход первым (Пети) есть выигрышная стратегия: первый ход должен быть +3 (в куче получится 13 камней). В этом случае при ходе второго игрока (Вани) +3 (в куче 16 камней) первый (Петя) выигрывает ходом *2 (в куче 32 камня); при ходе второго игрока (Вани) *2 (в куче 26 камней) первый (Петя) также выигрывает ходом *2 (в куче 52 камня). Второй игрок (Ваня) может выиграть только в случае, если первый (Петя) сделает начальный ход *2 (в куче 20 камней), следующий ход (Вани) *2 (в куче 40 камней) приводит к выигрышу.
ответ 52