Как найти число, реверс которого в два раза больше исходного?Python

Программы на Python
Ответить
Anonymous
 Как найти число, реверс которого в два раза больше исходного?

Сообщение Anonymous »

Я пытаюсь найти число ( N ) такое, что обратное число ( N ) равно ( 2 * N ). Вот подробная постановка задачи:
Обратное число ( N ) получается перестановкой его цифр. Например:
1.Обратным к ( 123 ) является ( 321 ).
2. Обратной стороной (105) является (501).
3. Условие, которое необходимо удовлетворить:
reverse(N) = 2 * N
< /code>

Я хочу найти наименьшее (n) (с любым количеством цифр), которые удовлетворяют это условием. < /li>
< /ol>
Я написал сценарий Python, чтобы проверить номера последовательно: < /p>
def find_number():
for n in range(1, 10**12): # Extendable range
reverse_n = int(str(n)[::-1])
if reverse_n == 2 * n:
return n
return None

result = find_number()
print(result)
< /code>
Однако мой код занимает много времени для выполнения больших диапазонов. < /p>
Мои вопросы: < /p>
< ul>
Как я могу эффективно найти такое число (n)? < /li>
Есть ли математический подход или оптимизация, которую я могу использовать, чтобы избежать грубой силы? < /li >
< /ul>
Любая помощь или идеи были бы очень оценены! < /p>

Подробнее здесь: https://stackoverflow.com/questions/793 ... nal-number
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»