“原始青蛙”是一种奇怪的动物,会在整数之间跳跃,直到到达3或19。
您的程序应接受一个整数n作为输入,并输出以下算法(3或19)的结果。
对于给定的整数n >= 2:
- 设
f青蛙的位置。最初设置为n - 如果
f = 3或f = 19:青蛙停止跳跃停止程序和输出f。 - 如果
f是素数:青蛙跳到那个位置2×f-1。返回步骤2。 - 如果
f为Composite:则将其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项,说如果青蛙进入了任何循环(遇到了之前看到的位置),那么它将停止跳跃并返回最小的该循环的成员。
