#2367. yhx 的生命值

yhx 的生命值

题目描述

yhx 最近在玩一个游戏,在这个游戏里他一开始只有 1 点生命值

但是这个游戏允许他进行几轮操作来增加他的生命值

每一轮游戏他可以选择以下三种操作之一进行: 假设现在他现在的生命值为 xx

  1. 当前生命值 +1+1,即 x+1x + 1
  2. 当前生命值 1-1,即 x1x - 1
  3. 使得生命值变成当前生命值的 yy 次方(yy 可以是任意正整数),即 xyx^y

当前,任何时间 yhx 的生命值都不能为 00 ,否则游戏会失败

现在 yhx 希望自己的游戏不那么无聊,所以他不希望生命值越大越好,他自己设置了一个想要的生命值 NN

现在他想知道,最少进行几轮操作可以使得他的生命值为 NN

输入格式

一行一个正整数 NN

输出格式

一行一个整数,表示最少进行的操作次数

数据范围

对于 60%60\% 的数据保证 1N201 \leq N \leq 20

对于 100%100\% 的数据保证 1N1001 \leq N \leq 100

样例输入

80

样例输出

4

样例解释

四次步骤分别如下:

  1. 1+1=21 + 1 = 2
  2. 2+1=32 + 1 = 3
  3. 34=813^4 =81
  4. 811=8081-1 = 80