Одного разу ти прокинешся лише для того, щоб потрапити в масив. Ви намагаєтеся просто піти звідти, беручи один індекс на час, але, схоже, є й інші правила:
Масив повністю заповнений натуральними числами.
- Якщо ви опинитесь на індексі
n
, переходите до індексуarray[n]
, крім: - Якщо ви опинитесь на індексі,
n
який є простим числом, ви робитеarray[n]
кроки назад
Приклад: Ви починаєте з індексу 4
в цьому масиві (індекс запуску 0):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
Оскільки значення поля, на якому ви знаходитесь 8
, переходить до індексу 8
як перший крок. Поле, на яке ви приземляєтеся, містить значення 2
. Потім ви переходите до індексу 2
як свого другого кроку. Як 2
просте число, ви робите 5 кроків назад, це ваш третій крок. Оскільки немає індексу -3
, ви успішно вийшли з масиву загалом за 3 кроки.
Ваше завдання:
Написати програму або функцію, яка приймає масив та індекс запуску як параметр і виводить кількість кроків для виходу з масиву. Якщо ви не можете уникнути масиву (наприклад, [2,0,2]
з start-index 2
=> ви постійно переходите від індексу 2
до 0
), виведіть помилкове значення. Ви можете використовувати індексацію на основі однієї чи нульової індексації, але, будь ласка, вкажіть, яку ви використовуєте.
Тестові справи
Вхід: [2,5,6,8,1,2,3], 3
Вихід: 1
Вхід: [2, 0, 2], 2
Вихід: false
Вхідні дані : [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5
;
Вихід: 6
Найкоротша відповідь виграє.