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
n
yang 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 8
sebagai langkah pertama. Bidang yang Anda gunakan berisi nilai 2
. Anda kemudian pergi untuk mengindeks 2
sebagai langkah kedua Anda. Seperti halnya 2
bilangan 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 2
ke 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.