Школа179: /Информатика//Информатика / Олимпиады/2008//Информатика / Олимпиады / 2008 / Школьная//Информатика / Олимпиады / 2008 / Школьная / Разбор/D
 

Разбор задачи D


Условия задачи четвертого тура

Пусть n – исходное число. Если n=1, то ответом является 1. Иначе будем нам необходимо представить n в виде произведения нескольких чисел (цифр) от 2 до 9.

При этом нам необходимо чтобы суммарное количество цифр было как можно меньше (тогда удастся составить меньшее число), кроме того, желательно использовать как можно бoльшие цифры, тогда другие цифры получатся меньше и также можно будет составить меньшее число. Например, если необходимо представить требуемым образом число 24, то лучше использовать делитель 8, т.к. тогда удастся представить число 24=3*8. Если же не использовать делитель 8, а использовать делитель 6, то получится худшее представление: 24=4*6.

Таким образом, будем делить число последовательно на цифры 9, 8, 7, 6, 5, 4, 3, 2, пытаясь получить в разложении большие цифры. Для нахождения минимального числа полученные цифры необходимо будет записать в обратном порядке.

Также следует учесть проблему переполнения результата: например, если исходное число равно 510=9765625, то правильный ответ будет иметь вид 5555555555, и его невозможно будет записать в переменной типа int. Поэтому результат будем записывать в строку Result.