Một ngày bạn thức dậy chỉ để thấy mình bị cuốn vào một mảng. Bạn cố gắng đi ra khỏi đó, lấy một chỉ số vào thời điểm đó, nhưng dường như có các quy tắc khác:
Các mảng hoàn toàn chứa đầy số tự nhiên.
- Nếu bạn thấy mình trên một chỉ mục
n
, bạn đi đến chỉ mụcarray[n]
, ngoại trừ: - Nếu bạn thấy mình trên một chỉ số
n
là số nguyên tố, bạnarray[n]
lùi lại
Ví dụ: Bạn bắt đầu vào chỉ mục 4
, trong mảng này (chỉ mục bắt đầu là 0):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
Vì giá trị của trường bạn đang ở 8
, bạn đi đến chỉ mục 8
là bước đầu tiên. Lĩnh vực bạn hạ cánh chứa giá trị 2
. Sau đó, bạn đi đến chỉ mục 2
là bước thứ hai của bạn. Là 2
số nguyên tố, bạn lùi lại 5 bước, đây là bước thứ ba. Vì không có chỉ mục -3
, bạn đã thoát thành công mảng trong tổng số 3 bước.
Nhiệm vụ của bạn là:
Để viết một chương trình hoặc hàm, chấp nhận một mảng và một chỉ mục bắt đầu làm tham số và xuất ra số lượng các bước để thoát khỏi mảng. Nếu bạn không thể thoát khỏi mảng (ví dụ: [2,0,2]
với start-index 2
=> bạn liên tục đi từ chỉ mục2
sang 0
), hãy đưa ra một giá trị giả. Bạn có thể sử dụng lập chỉ mục một hoặc dựa trên không, nhưng vui lòng chỉ định bạn sử dụng.
Các trường hợp thử nghiệm
Đầu vào: [2,5,6,8,1,2,3], 3
Đầu ra: 1
Đầu vào: [2, 0, 2], 2
Đầu ra: false
Đầu vào: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5
;
Đầu ra: 6
Câu trả lời ngắn nhất sẽ thắng.