nepp, можно так: берём первый элемент массива, начинаем суммировать: первый + второй + ... + Nный, до тех пор, пока сумма не станет больше заданного числа. Если стала больше, а сумма не найдена, то вычитаем последний элемент, который был сложен с общей суммой и пропуская его, начинаем суммировать дальше. И так, пока не будет найдена сумма.
Пример:
Ввод: 12
[5, 3, 2, 6, 4]
5 + 3 + 2 + 6 // сумма больше 12,
5 + 3 + 2 + 6 - 6 =>
5 + 3 + 2 + 4 // сумма больше 12, так как элемент последний, то начинаем с пропуском последнего элемента (да это повторение, но более оптимизированного варианта я не придумал), затем с пропуском предпоследнего и так далее
И так, рано или поздно, будет найдена сумма 5 + 3 + 4
num = int(input())
numList = []
while True:
num2 = input()
if num2 != '':
numList.append(int(num2))
else:
break
numList2 = []
for elem in numList:
if num%elem == 0:
numList2.append(elem)
for elem in numList2:
print(elem)