Pewnego dnia budzisz się tylko, aby znaleźć się w tablicy. Próbujesz po prostu wyjść, biorąc jednocześnie jeden indeks, ale wydaje się, że istnieją inne zasady:
Tablica jest całkowicie wypełniona liczbami naturalnymi.
- Jeśli znajdziesz się w indeksie
n, przejdź do indeksuarray[n], z wyjątkiem: - Jeśli znajdziesz się w indeksie,
nktóry jest liczbą pierwszą,array[n]cofnij się
Przykład: Zaczynasz od indeksu 4w tej tablicy (indeks początkowy to 0):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
Ponieważ wartość pola, w którym się znajdujesz 8, to przejdziesz do indeksu 8jako pierwszy krok. Pole, na którym wylądujesz, zawiera wartość 2. Następnie przejdź do indeksu 2jako drugi krok. Podobnie 2jak liczba pierwsza, cofasz się o 5 kroków, co jest twoim trzecim krokiem. Ponieważ nie ma indeksu -3, udało ci się uciec z tablicy w 3 krokach.
Twoim zadaniem jest:
Aby napisać program lub funkcję, która akceptuje tablicę i indeks początkowy jako parametr, i wyświetla liczbę kroków do ucieczki z tablicy. Jeśli nie możesz uciec przed tablicą (np. [2,0,2]Przy pomocy start-index 2=> ciągle przechodzisz od indeksu 2do 0), wypisz wartość fałszowania. Możesz użyć indeksowania opartego na jednym lub zerowania, ale określ, którego używasz.
Przypadki testowe
Wkład: [2,5,6,8,1,2,3], 3
Wydajność: 1
Wkład: [2, 0, 2], 2
Wydajność: false
Wkład: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5 ;
Wydajność: 6
Najkrótsza odpowiedź wygrywa.