Пусть F (n) — число разрезов для числа n. F (1) = 0.
Заметим, что F(2ˆk) = k, потому что можно k раз совмещать все рулеты и резать их пополам.
Также заметим, что F (n) < F (n + 1), потому что разрезание рулета на n частей-подзадача
от разрезания рулета на n + 1 часть. Кроме того, заметим, что за k разрезов можно получить не больше,
чем 2ˆk кусков. Совместив полученные знания, получаем, что для n ∈ (2ˆ(k−1);2ˆk] ответом будет число k.
Значит, нужно найти старший бит числа n, что можно сделать с помощью цикла, в котором n будет итеративно делиться на два.
Число итераций и будет ответом.