Я не знаю Паскаль(программирую на C++ чуть больше 3 лет), но идея следующая. Если n - нечетно, то выводим, что такого быть не может.
Иначе делим n пополам и получаем количество только утят(один из вариантов: все утята). А дальше, пока можем, заменяем 2 утят на 1 кота и выводим данное решение. Если непонятно, то могу добавить программу, но на C++(насколько знаю, они не сильно различаются).