Um dia você acorda apenas para se ver preso em uma série. Você tenta sair de lá, pegando um índice de cada vez, mas parece que existem outras regras:
A matriz é completamente preenchida com números naturais.
- Se você se encontrar em um índice
n
, você acessa o índicearray[n]
, exceto: - Se você se encontrar em um índice
n
que é um número primo, vocêarray[n]
recua
Exemplo: você inicia no índice 4
, nesta matriz (o índice inicial é 0):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
Como o valor do campo em que você está é 8
, você vai para o índice 8
como a primeira etapa. O campo em que você pousa contém o valor 2
. Você então vai para o índice 2
como seu segundo passo. Como 2
é um número primo, você recua 5 passos, que é seu terceiro passo. Como não há índice -3
, você escapou da matriz com sucesso em um total de 3 etapas.
Sua tarefa é:
Para escrever um programa ou função, que aceita uma matriz e um índice inicial como parâmetro, e gera a quantidade de etapas para escapar da matriz. Se você não conseguir escapar da matriz (por exemplo, [2,0,2]
com start-index 2
=> você passa constantemente do índice 2
para 0
), insira um valor falso. Você pode usar a indexação com base em um ou a indexação com base em zero, mas especifique qual você usa.
Casos de teste
Entrada: [2,5,6,8,1,2,3], 3
Saída: 1
Entrada: [2, 0, 2], 2
Saída: false
Entrada: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5
;
Saída: 6
A resposta mais curta vence.