O "primo sapo" é um animal estranho que salta entre números inteiros, até chegar aos 3 ou 19 anos ...
Seu programa deve aceitar um número inteiro n
como entrada e gerar o resultado do algoritmo abaixo ( 3
ou 19
).
Para um dado inteiro n >= 2
:
- Let
f
Ser a posição do sapo. É inicialmente definido comon
- se
f = 3
ouf = 19
: o sapo para de pular - interrompe o programa e a saídaf
. - se
f
for primo: o sapo pula para a posição2×f-1
. Volte para a etapa 2. - se
f
for composto:d
sejaf
o maior divisor principal de s. O sapo pula para a posiçãof-d
. Volte para a etapa 2.
Exemplos:
Um exemplo com n = 5
:
5 > 9 > 6 > 3 stop
O programa deve sair 3
.
Outro exemplo com n = 23
:
23 > 45 > 40 > 35 > 28 > 21 > 14 > 7 > 13 > 25 > 20 > 15 > 10 > 5 > 9 > 6 > 3 stop
Novamente, o programa deve sair 3
.
Casos de teste:
10 => 3
74 => 19
94 => 3
417 => 3
991 => 19
9983 => 19
Você pode assumir 1 < n < 1000000
(verifiquei o programa termina para esses valores).
3
ou 19
, poderíamos alterar o item 2. no algoritmo para dizer que, se o sapo entrou em qualquer loop (encontrou uma posição que já havia visto antes), ele interrompe o salto e retorna o menor membro desse loop.