Олимпиадная задачка на  Лисп: найти ряд чисел, в сумме дающих определённое число

Всем привет. Недавно что-то вспомнил одну задачу, которую как-то доводилось решать в разделе С. Помню так же, что моё решение было неполным, так как работало не всегда. Предлагаю сейчас вам подумать над решением этой задачи и написать его на любом диалекте языка Lisp. А так же поделиться своими соображениями насчёт алгорифмов решения данной задачи.

Задача.

Дано:

1) Дан список чисел произвольной длины.

2) Дано число, которое вводит пользователь.

Вопрос: есть ли в списке числа которые дают в сумме введённое пользователем число? Если есть, то найти их, а если нет, то сообщить об их отсутствии.