Здравствуйте, _DAle_, Вы писали:
_DA>Как-то нет сейчас времени особо подумать, но первое, что можно сделать — это перебирать половинки (n/2 цифр для четной длины, n/2+1 для нечетной) 10-палиндромов, зеркально отражать, а потом проверять на 2-палиндром. Во всяком случае по сравнению с тупым брутфорсом — это существенно быстрее. Потом я бы попробовал сгенерировать эти 2-10-палиндромы и посмотреть на них
O(P^(1/2)) против O(P), конечно. (Где P — значение n-ного палиндрома).
Причём генерировать палиндром из половинки можно двумя способами:
— разложением каждого получисла на разряды (задействуя деление)
— формируя последовательность палиндромов как сложение арифметических прогрессий (задействуя только сложение)
А вот как генерировать сразу 2-10-палиндром, это интересный вопрос.