#P1945. Power Hungry Cows

Power Hungry Cows

题目描述:

农夫约翰(FJFJ)的奶牛们希望能够快速计算数字的整数次幂 PP (1P200001 \leq P \leq 20000),但这需要你的帮助。因为它们要计算的是非常大的数字的幂次方,所以它们只能保留两个用于存储中间结果的工作变量。其中一个工作变量初始化为要计算其幂次方的数字(记为 xx);另一个工作变量初始化为 11。奶牛们可以对任意两个工作变量进行乘法或除法运算,并将结果存储在任意一个工作变量中,但所有结果都以整数形式存储。例如,如果它们想要计算 x31x^{31},一种进行计算的方法如下:

                                          WV1  WV2

                                  Start:   x    1

Multiply first by first, store in second:  x   x^2

              Multiply second by second:   x   x^4

              Multiply second by second:   x   x^8

              Multiply second by second:   x   x^16

              Multiply second by second:   x   x^32

                 Divide second by first:   x   x^31

因此,x31x^{31} 可以通过六次运算得出。给定需要计算的幂次以及工作变量的数量,求出计算该幂次所需的最少运算次数。

输入:

一行,包含一个整数:PP

输出:

输出一行,包含一个整数,该整数表示计算这个幂次方所需的最少操作次数。

输入数据1

31

输出数据1

6

来源:

美国计算机奥林匹克竞赛(USACO)2002 年 2 月赛 。