Щоб вирішити цю проблему, я спочатку зауважив це
Де - кількість (не обов'язково простих) дільників . Якщо - найменше ціле число, таке що , то
Тепер ми повинні вибрати таким, щоб був мінімальним. Вибір для тривіальний - вони просто букви в порядку зростання.
Однак моя перша думка про вибір була неправильною. Я думав, що ви можете просто помножити , сортувати коефіцієнти у порядку зменшення та відняти 1. Більшість випадків це працює нормально, наприклад, найменше ціле число з дільниками:
Але для це неправильно :
Тоді як правильна відповідь:
Тож зрозуміло, що іноді нам потрібно об'єднати фактори. У цьому випадку тому, що . Але я точно не бачу чистої та прямої стратегії злиття. Наприклад, можна подумати, що ми завжди повинні зливатися у сили, але це неправда:
Я не можу одразу придумати приклад, але мій інстинкт говорить, що деякі жадібні підходи можуть зазнати невдачі, якщо вони спочатку з’єднають неправильні сили.
Чи існує проста оптимальна стратегія об'єднання цих повноважень, щоб отримати правильну відповідь?
Додаток Жадібний алгоритм, який перевіряє кожне можливе злиття та виконує найкраще на основі об'єднання за об'єднанням, не працює на . Серія злиття один за одним:
Однак оптимальним рішенням є: