Обратное число ( N ) получается перестановкой его цифр. Например:
1.Обратным к ( 123 ) является ( 321 ).
2. Обратной стороной (105) является (501).
3. Условие, которое необходимо удовлетворить:
Код: Выделить всё
reverse(N) = 2 * N
- Я хочу найти наименьшее значение ( N ) (с любым количеством цифр), которое удовлетворяет этому условию.
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
Мобильная версия