Un jour, vous ne vous réveillez que pour vous retrouver pris dans un tableau. Vous essayez de sortir de là, en prenant un index à la fois, mais il semble qu'il existe d'autres règles:
Le tableau est entièrement rempli de nombres naturels.
- Si vous vous retrouvez sur un index
n
, vous accédez à l'indexarray[n]
, sauf: - Si vous vous retrouvez sur un indice
n
qui est un nombre premier, vousarray[n]
reculez
Exemple: vous commencez sur l'index 4
, dans ce tableau (l'index de départ est 0):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
Comme la valeur du champ sur lequel vous vous trouvez est 8
, vous accédez à l'index 8
comme première étape. Le champ sur lequel vous atterrissez contient la valeur 2
. Vous allez ensuite à l'index 2
comme deuxième étape. Comme 2
c'est un nombre premier, vous reculez de 5 pas, ce qui est votre troisième pas. Comme il n'y a pas d'index -3
, vous avez réussi à échapper au tableau en 3 étapes au total.
Votre tâche est:
Pour écrire un programme ou une fonction, qui accepte un tableau et un index de démarrage comme paramètre, et génère le nombre d'étapes pour échapper au tableau. Si vous ne pouvez pas échapper au tableau (par exemple [2,0,2]
avec start-index 2
=> vous passez constamment de l'index 2
à 0
), affichez une valeur falsifiée. Vous pouvez utiliser une indexation à base unique ou une indexation à base zéro, mais veuillez spécifier celle que vous utilisez.
Cas de test
Contribution: [2,5,6,8,1,2,3], 3
Sortie: 1
Contribution: [2, 0, 2], 2
Sortie: false
Entrée: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5
;
Sortie: 6
La réponse la plus courte l'emporte.