// начальные значения
P = 1;
k = 2;
f=1;
i=1
t=1;
// далее цикл пока i<2*k+1=2*2+1=5
// таким образом
f = 1*5! = 1*120=120
// далее цикл пока i<k-1=2-1=1
// тоесть так как i = 1 вычисления в этом цикле не производятся
// таким образом
t=1;
// далее получаем
r = 120 / 1 = 120 // об этом вам написал @myjcom.
// ну а далее получаем завершение вычислений если r >= M
// то есть если вы введете М меньше чем 120 то вы получите всего 1 цикл вычислений.
Так что считаем что подход уже опробирован и утвержден, а значит и решение верное ))))
PS: немного пояснений.
от 6.1-6.2 отказался, теперь алгоритм выглядит так:
1. создаем массив, в котором будем хранить размеры свободных от жуков областей камней (изначально в массиве всего 1 запись равная начальному количеству камней.
2. для каждого жука делаем:
2.1 вынимаем из массива первую ячейку (она будет самым большим куском)
2.2 отнимаем от ее размера 1 (это жук занял 1 камень)
2.3 делим ее пополам, при этом если пополам не делится, то левую часть будем считать большей а правую меньшей (например 7/5 = 3.5, тоесть левая=4 а правая=3)
2.4 вставляем в конец массива обе части, при этом потенциально большую (левую) вставляем в первую очередь а потенциально меньшую (правую) во вторую. Это даст нам то, что в первой ячейке массива всегда будет самая большая часть из имеющихся
2.5 если еще есть жуки возвращаемся на 2.1
3. дойдя до сюда, получаем ответ (лево и право вычисленные для последнего жука :)