«Основная лягушка» - странное животное, которое прыгает между целыми числами, пока не прибудет 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. в алгоритме, чтобы сказать, что если лягушка вошла в какой-либо цикл (обнаружил позицию, которую она видела ранее), то она прекращает прыжок и возвращает наименьшее член этого цикла.
