Якщо x \le d, відповідь очевидна: масив з одного елемента .
Інакше треба розбити на множники, кожен з яких не перевищує , і зробити це якнайменшою кількістю множників.
Спочатку перевіримо, чи розв'язок узагалі існує. Розкладемо на прості множники. Якщо серед них є простий p > d, то жоден множник добутку не зможе його «сховати» — будь-який елемент масиву, кратний , буде не меншим за p > d. У цьому разі виводимо .
Якщо ж усі прості не перевищують , розв'язок існує, і будувати його вигідно жадібно: щоразу відщипувати від залишку якомога більший множник.
Формально: доки поточне значення більше за , шукаємо найбільший дільник , що не перевищує , додаємо його до відповіді й ділимо на нього. Коли стає не більшим за , додаємо його останнім елементом.
Кожен крок зменшує щонайменше вдвічі (бо взятий дільник не менший за ), тому кроків буде щонайбільше близько при x \le 10^9 — це з великим запасом вкладається в обмеження n \le 1000 з умови.
Дільники зручно шукати одним проходом до \sqrt{x}: для кожного , що ділить , кандидатами є і , і ; серед тих, що не перевищують , беремо найбільший.
Оскільки x \le 10^9, розклад пробними діленнями коштує близько 3 \cdot 10^4 операцій.