3301: 魔法薯条
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:15
解决:9
题目描述
jzj最近学了个很实用的魔术,他可以把一个东西变少或者变多。但是由于水平还不到家,所以变多或变少的模式只有三种。 (1)、变少一个(n→ n-1) (2)、变多一个(n→ n+1) (3)、变为原来的p次幂(p为任意正整数)。(n→n^p) Jzj喜欢吃薯条,一包薯条jzj不停地吃啊吃,最后只剩下了一根。但是jzj舍不得把剩下的一根一口就吃掉,所以他想用他的小魔法把薯条变得越来越多越来越多~ 可是薯条吃太多,jzj的肚子也撑不下,所以jzj订好了计划,他只能再吃n根薯条,少吃一根jzj会不开心,多吃一根jzj的肚子会撑坏,所以jzj只能恰好吃n根薯条。 Jzj想尽快的吃到这n根薯条,所以他想知道他最少需要施展几次魔法能够把1根薯条变为n根。
输入
一行一个正整数N,表示jzj恰好能吃N根薯条。
输出
一行一个整数,表示从1变到N最少施展的魔法次数。
样例输入 复制
8
样例输出 复制
2
提示
【输入样例】 80
【输出样例】 4
样例解释: 对于第一个样例,jzj第一次施法完成效果1,现在jzj就有了2根薯条,之后施用魔法完成效果3(我们令p=3),就变出了8根薯条。 对于第二个样例,步骤如下: 1: 1+1 → 2 2: 2+1 → 3 3: 34 → 81 4: 81-1 → 80
【数据规模】 对于30%的数据满足 N≤20 对于60%的数据满足 N≤1000 对于100%的数据满足 1≤N≤1000000