有一天,您醒来只是发现自己陷入了阵列。您尝试走出那里,同时获取一个索引,但是似乎还有其他规则:
该数组完全用自然数填充。
- 如果发现自己在索引上
n
,请转到该索引array[n]
,除了: - 如果您发现自己
n
是素数索引,则可以array[n]
退后一步
示例:您4
从此数组中的index开始(起始索引为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
=>,则不断从index 2
转到0
),则输出错误的值。您可以使用基于1的索引或基于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
最短的答案将获胜。