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
nqui 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 8comme première étape. Le champ sur lequel vous atterrissez contient la valeur 2. Vous allez ensuite à l'index 2comme deuxième étape. Comme 2c'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.