Ctrl K

Прогулка по составным числам

Средняя
На табло горит натуральное число start. За один шаг можно взять любую его цифру и увеличить её на 1 (если она не 9) или уменьшить на 1 (если она не 0). Количество цифр при этом не меняется: старшая цифра не может стать нулём. Табло ломается, если на нём оказывается простое число, — так что ни исходное число, ни любое промежуточное, ни итоговое не должны быть простыми. Стоимость прогулки — сумма всех чисел, которые побывали на табло, включая start и последнее число. Найдите минимальную стоимость, за которую можно получить на табло число target, или верните -1, если это невозможно.
Пример 1
start=20, target=24 → 186

Напрямую через 23 не пройти — это простое число. Дешевле всего обойти его через третий десяток: 20 → 21 → 22 → 32 → 33 → 34 → 24, стоимость 20 + 21 + 22 + 32 + 33 + 34 + 24 = 186.

Пример 2
start=14, target=16 → 45

14 → 15 → 16, все три числа составные: 14 + 15 + 16 = 45.

Пример 3
start=9, target=7 → -1

7 — простое число, на нём нельзя оказаться, поэтому ответ -1.

Ограничения
  • 1 ≤ start, target < 10⁵
  • в start и target одинаковое количество цифр
  • число 1 простым не считается
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКратчайший путь катящегося шарика СредняяВремя оповещения сети СредняяДешёвый перелёт с малым числом пересадок СредняяСамый надёжный маршрут сообщения СредняяМаршруты всё ближе к складу Средняя
загружаем Python…
Вход
start=20, target=24
Ожидается
186

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 112 тестов на сервере, включая скрытые.