Чтобы решить эту проблему, я сначала заметил, что
Где - число (не обязательно простых) делителей числа . Если наименьшее целое число такое, что , то
Теперь мы должны выбрать такое , что минимален. Выбор для тривиален - это просто простые числа в порядке возрастания.
Тем не менее, моя первая мысль о выборе был неправильным. Я думал, что вы могли бы просто множить , отсортировать факторы в порядке убывания и вычесть 1. В большинстве случаев это работает нормально, например, наименьшее целое число с делителями:
15 = ( 4 + 1 ) ( 2 + 1 ) т = 2 4 3 2 = 144
Но это неверно для :
16 = ( 1 + 1 ) ( 1 + 1 ) ( 1 + 1 ) ( 1 + 1 ) т = 2 1 3 1 5 1 7 1 = 210
Тогда как правильный ответ:
m = 2 3 3 1 5 1 = 120
Поэтому ясно, что иногда нам нужно объединять факторы. В этом случае, потому что . Но я не вижу четкой и прямой стратегии слияния. Например, можно подумать, что мы всегда должны сливаться со степенью 2 , но это не так:
m = 2 96 3 1 5 1 7 1 11 1 > 2 96 3 3 5 1 7 1
Я не могу сразу придумать пример, но мой инстинкт говорит, что некоторые жадные подходы могут потерпеть неудачу, если они сначала объединят неправильные силы.
Существует ли простая оптимальная стратегия объединения этих полномочий, чтобы получить правильный ответ?
Однако оптимальным решением является: