U236389 C.变(turn.cpp)

题目背景

2022青岛市赛小学组T3

题目描述

对 $2$ 以上(包括 $2$ ) $n$ 以下(包括 $n$ )的正整数 $x$ 可以进行以下操作。 - 如果 $x+1≤n$ ,$x+1$ 可变为新的 x。 - 如果 $\sqrt{\smash[b]{x}}$ 为整数, $\sqrt{\smash[b]{x}}$ 可变为新的 $x$ 例如 $x=2$ 时,新的 $x$ 可以为 $3$ 。 $x=4$ 时,新的 $x$ 可以为 $(2,5)$ 中的任意一个。 kagamiz想知道从 $x=2$ 开始,将所有允许的操作都执行至少一遍,使 $x$ 的值再次为 $2$ 的方法中,操作 次数最少的方法的操作次数。 你的任务就是判断这样的方法是否存在,如果存在,则输出最小操作次数。

输入格式

输入 $1$ 行, $1$ 个整数 $n$ 。

输出格式

输出 $1$ 行最小操作次数。当不存在符合条件的方法时输出 $-1$ 。

说明/提示

$50\%$的数据:$2≤n≤3*10^3$; $100\%$的数据:$2≤n≤3*10^3$ (任意时刻 $x$ 都不能超过的上限值)。