"Перша жаба" - це дивна тварина, яка стрибає між цілими числами, поки не прибуде 3 або 19 ...
Ваша програма повинна прийняти ціле число n
як вхід і вивести результат наведеного нижче алгоритму ( 3
або 19
).
Для заданого цілого числа n >= 2
:
- Нехай
f
буде положення жаби. Спочатку встановленоn
- якщо
f = 3
абоf = 19
: жаба перестає стрибати - зупиніть програму та виведітьf
. - якщо
f
це просто: жаба стрибає в положення2×f-1
. Поверніться до кроку 2. - якщо
f
складений: нехайd
будеf
найбільшим простим дільником. Жаба стрибає на позиціюf-d
. Поверніться до кроку 2.
Приклади:
Приклад із n = 5
:
5 > 9 > 6 > 3 stop
Програма повинна вивести 3
.
Ще один приклад n = 23
:
23 > 45 > 40 > 35 > 28 > 21 > 14 > 7 > 13 > 25 > 20 > 15 > 10 > 5 > 9 > 6 > 3 stop
Знову ж таки, програма повинна вивести 3
.
Тестові приклади:
10 => 3
74 => 19
94 => 3
417 => 3
991 => 19
9983 => 19
Ви можете припустити 1 < n < 1000000
(я перевірив, чи закінчується програма на ці значення).
3
або 19
ми можемо змінити пункт 2. в алгоритмі, щоб сказати, що якщо жаба вступила в який-небудь цикл (зіткнулася з позицією, яку вона бачила раніше), вона припиняє стрибки і повертає найменшу член цієї петлі.