#W1027. 消息轰炸

消息轰炸

题目背景

kkw 最近迷上了给朋友发消息轰炸。他发现如果单纯靠手动一个一个字敲,效率实在是太低了。为了能在最短时间内发送出指定长度 nn 的重复字符,他开始研究如何合理利用键盘上的“复制”和“粘贴”功能。kkw 想知道,在只使用特定几种操作的情况下,最少需要多少步才能达成目标。

题目描述

你面前有一个初始为空的屏幕。你的目标是在屏幕上得到正好 nn 个相同的字符。

你可以执行以下三种操作:

  1. 全选并复制:将当前屏幕上的所有字符复制到剪贴板(这会覆盖剪贴板中原有的内容)。
  2. 粘贴:将当前剪贴板中的字符粘贴到屏幕上。
  3. 输入单个字符:直接在屏幕上输入一个字符。

任务:给定目标字符长度 nn,求达成该长度所需的最少操作次数。

输入格式

一个整数 nn,表示目标字符串的长度(1n2×1051 \leq n \leq 2 \times 10^5)。

输出格式

一个整数,表示达成目标长度所需的最少操作次数。

样例

3
3
6
5

样例解释

对于样例 1(n=3n=3):

  • 操作 1:输入 1 个字符(屏幕:1,剪贴板:空)
  • 操作 2:输入 1 个字符(屏幕:2,剪贴板:空)
  • 操作 3:输入 1 个字符(屏幕:3,剪贴板:空) 最少需要 3 步。

对于样例 2(n=6n=6):

  • 操作 1:输入 1 个字符(屏幕:1,剪贴板:空)
  • 操作 2:输入 1 个字符(屏幕:2,剪贴板:空)
  • 操作 3:全选并复制(屏幕:2,剪贴板:2)
  • 操作 4:粘贴(屏幕:4,剪贴板:2)
  • 操作 5:粘贴(屏幕:6,剪贴板:2) 最少需要 5 步。