Однажды ты просыпаешься только для того, чтобы оказаться пойманным во множестве. Вы пытаетесь просто уйти оттуда, взяв один индекс за раз, но, похоже, существуют другие правила:
Массив полностью заполнен натуральными числами.
- Если вы попали в индекс
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
Самый короткий ответ выигрывает.