Учитывая k
, нам нужно написать 1
как сумму фракций k
формы 1/r
.
Например,
- Для
k=2
,1
можно однозначно записать как1/2 + 1/2
. - Для
k=3
,1
может быть записано как1/3 + 1/3 + 1/3
или1/2 + 1/4 + 1/4
или1/6 + 1/3 + 1/2
Теперь нам нужно рассмотреть весь такой набор фракций k
, которые суммируются до 1
и возвращают наивысший знаменатель среди всех таких множеств; например, пример 2, наш алгоритм должен возвращать 6
.
Я столкнулся с этой проблемой в конкурсе кодирования и не смог найти алгоритм для этого. Несколько позже поиск Google показал, что такие фракции называются Egyption Fractions, но, вероятно, они представляют собой различные фракции, суммирующие до определенного значения (не как 1/2 + 1/2
). Кроме того, я не мог найти алгоритм для вычисления Liberation Fractions (если они вообще полезны для этой проблемы), когда их число ограничено k
.