「prime frog」は、3または19に到達するまで整数間をジャンプする奇妙な動物です...
プログラムは、整数n
を入力として受け入れ、以下のアルゴリズムの結果(3
または19
)を出力する必要があります。
与えられた整数に対してn >= 2
:
f
カエルの位置にしましょう。最初に設定されますn
- if
f = 3
またはf = 19
:カエルがジャンプを停止した場合-プログラムと出力を停止しますf
。 - if
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を変更して、カエルがループに入った場合(前に見た位置に遭遇した場合)、ジャンプを停止し、最小値を返すと言うことができますそのループのメンバー。