eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

І знову ланцюжок

І знову ланцюжок

Розглянемо ланцюжок, який скадається з \textbf{N }кілець. Яку мінімальну кількість кілець необхідно розцепити, щоб із кусочків, що залишаться, можна було б зібрати ланцюжки довільної довжини від \textbf{1 }до \textbf{N }кілець? При створенні нових ланцюжків можна використовувати розцеплені кільця. \includegraphics{https://static.e-olymp.com/content/f2/f2863deb6d07a2bb4e75f40a392dc3572457f3bb.jpg} Наприклад, при \textbf{N = 21}, достатньо розцепити усього \textbf{2 }кільця таким чином, щоб утворились ланцюжки довжиною \textbf{3}, \textbf{5 та 11}. Два розцеплених кільця важаються ланцюжками одиничної довжини. Напишіть програму, яка за натуральним числом \textbf{N -} довжині початкового ланцюжка, знаходить мінімальну кількість кілець, які необхідно розцепити для досягнення описаної мети. \InputFile Одне ціле число \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{10^9}). \OutputFile Вивести одне ціле число - знайдену мінімальну кількість кілець.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
21
Вихідні дані #1
2
Автор Андрій Стасюк
Джерело 2007 XX Всеукраїнська олімпіада з інформатики, Кременчук, Квітень 10 - 16, тур 1