Un giorno ti svegli solo per ritrovarti intrappolato in un array. Cerchi di uscire da lì, prendendo un indice alla volta, ma sembra che ci siano altre regole:
L'array è completamente pieno di numeri naturali.
- Se ti trovi in un indice
n
, vai all'indicearray[n]
, tranne: - Se ti trovi su un indice
n
che è un numero primo, fai deiarray[n]
passi indietro
Esempio: si avvia su indice 4
, in questo array (l'indice di inizio è 0):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
Poiché il valore del campo in cui ti trovi è 8
, vai all'indice 8
come primo passo. Il campo su cui atterri contiene il valore 2
. Quindi vai all'indice 2
come secondo passaggio. Essendo 2
un numero primo, fai 5 passi indietro, che è il tuo terzo passo. Poiché non esiste alcun indice -3
, è stato eseguito correttamente l'escape dell'array in un totale di 3 passaggi.
Il tuo compito è:
Scrivere un programma o una funzione, che accetta un array e un indice iniziale come parametro e genera la quantità di passaggi per uscire dall'array. Se non riesci a sfuggire all'array (ad esempio [2,0,2]
con start-index 2
=> vai costantemente dall'indice 2
a 0
), genera un valore errato. È possibile utilizzare l'indicizzazione su base singola o su base zero, ma si prega di specificare quale utilizzare.
Casi test
Ingresso: [2,5,6,8,1,2,3], 3
Produzione: 1
Ingresso: [2, 0, 2], 2
Produzione: false
Ingresso: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5
;
Produzione: 6
Vince la risposta più breve.