Suatu hari Anda bangun hanya untuk menemukan diri Anda terjebak dalam array. Anda mencoba keluar begitu saja, mengambil satu indeks pada saat itu, tetapi tampaknya ada aturan lain:
Array diisi dengan bilangan asli.
- Jika Anda menemukan diri Anda pada indeks
n, Anda pergi ke indeksarray[n], kecuali: - Jika Anda menemukan diri Anda pada indeks
nyang merupakan bilangan prima, Anda mengambilarray[n]langkah mundur
Contoh: Anda memulai pada indeks 4, dalam array ini (indeks awal adalah 0):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
Karena nilai bidang tempat Anda berada 8, Anda masuk ke indeks 8sebagai langkah pertama. Bidang yang Anda gunakan berisi nilai 2. Anda kemudian pergi untuk mengindeks 2sebagai langkah kedua Anda. Seperti halnya 2bilangan prima, Anda mengambil 5 langkah mundur, yang merupakan langkah ketiga Anda. Karena tidak ada indeks -3, Anda berhasil keluar dari array dalam total 3 langkah.
Tugas Anda adalah:
Untuk menulis program atau fungsi, yang menerima array dan indeks awal sebagai parameter, dan menampilkan jumlah langkah untuk keluar dari array. Jika Anda tidak dapat keluar dari array (mis. [2,0,2]Dengan start-index 2=> Anda terus berpindah dari indeks 2ke 0), output nilai yang salah. Anda dapat menggunakan pengindeksan satu berbasis atau pengindeksan berbasis nol, tetapi harap tentukan yang Anda gunakan.
Uji kasus
Memasukkan: [2,5,6,8,1,2,3], 3
Keluaran: 1
Memasukkan: [2, 0, 2], 2
Keluaran: false
Input: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5;
Keluaran: 6
Jawaban terpendek menang.