Помогите решать задачу...
Задача такова: Дано натуральное число N. Если возможно, заменить любую из его цифр (только одну) так, чтобы получилось максимальное совершенное число.
Буду благодарен не только за код, но и просто за словестоное описание алгоритма...
учитывая, то что совершенных чисел немного, то можно заполниить массив ими, так чтобы кол-во цифр в помледнем не прквевышало кол-во цифр в макс целочисленном числе. А пото сопоставлять кол-во цифр в введеом и числах в масиве, и проверять отличаютса ли они на одну цифру.
Вариантов для проверки будет не больше 9 * (log10(N) + 1)
Проверять тоже задача не из простых. Если N большое и вариант для проверки окажется простым числом, дело затянется.
ЗЫ. Смотрел в гугле что ето за совершенные числа. Если их так мало и они в таком розбросе, не понимаю как из одного N можно получить 2
совершенных (ну чтоб максимальное из них взять)
Цитата: Rebbit
ЗЫ. Смотрел в гугле что ето за совершенные числа. Если их так мало и они в таком розбросе, не понимаю как из одного N можно получить 2
совершенных (ну чтоб максимальное из них взять)
ага, как я понял, то тут вопрос другой, нужно ставить: можно ли из данного числа получить совершенное, путем замены одной цифры.