问题
我们
n
是一个自然数≥ 2
。取最大除数(n
与n
自己不同)除以n
。重复直到得到1
。
问题
达到1
给定数字需要多少步骤n ≥ 2
。
详细的例子
让
n = 30
。
最大除数:
1. 30 is 15 --> 30 - 15 = 15
2. 15 is 5 --> 15 - 5 = 10
3. 10 is 5 --> 10 - 5 = 5
4. 5 is 1 --> 5 - 1 = 4
5. 4 is 2 --> 4 - 2 = 2
6. 2 is 1 --> 2 - 1 = 1
需要6个步骤才能到达1
。
输入项
- 输入是一个整数
n
,其中n ≥ 2
。 - 您的程序应支持输入语言的最大整数值。
输出量
- 只需输出步数,例如
6
。 - 前导/尾随空格或换行符都可以。
例子
f(5) --> 3
f(30) --> 6
f(31) --> 7
f(32) --> 5
f(100) --> 8
f(200) --> 9
f(2016^155) --> 2015
要求
- 您可以
STDIN
从命令行参数,函数参数或最接近的等效参数中获取输入。 - 您可以编写程序或函数。如果它是一个匿名函数,请举例说明如何调用它。
- 这是代码高尔夫球,因此最短答案以字节为单位。
- 不允许出现标准漏洞。
该系列也可以在OEIS上找到:A064097
由
a(1) = 0
和a(p) = 1 + a(p-1)
if 归纳定义的准对数,p
以及a(n*m) = a(n) + a(m)
ifm,n > 1
。
2^32 - 1
。其余的取决于您和您的系统。希望这就是您对问题的意思。