«Основная лягушка» - странное животное, которое прыгает между целыми числами, пока не прибудет 3 или 19 ...
Ваша программа должна принимать целое число в n
качестве входных данных и выводить результат приведенного ниже алгоритма ( 3
или 19
).
Для данного целого числа n >= 2
:
- Позвольте
f
быть положением лягушки. Первоначально установлено значениеn
- если
f = 3
илиf = 19
: лягушка перестает прыгать - остановите программу и выводf
. - если
f
прост: лягушка прыгает на позицию2×f-1
. Вернитесь к шагу 2. - if
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. в алгоритме, чтобы сказать, что если лягушка вошла в какой-либо цикл (обнаружил позицию, которую она видела ранее), то она прекращает прыжок и возвращает наименьшее член этого цикла.