Я не понимаю, как определить временную сложность цикла while в этом утверждении:
procedure P (integer n);
for (i: 1 to n)
x := n;
while (x > 0)
x := x - i;
Я знаю, что цикл for выполняется (n-1) раз. Сначала я думал, что цикл while будет выполняться n раз, потому что я принял i за 1, но это не так. Я ввожу числа, чтобы увидеть, когда программа остановится, но не вижу постоянного шаблона. Я заметил, что по мере увеличения n цикл while выполняется дольше (но ненамного), поэтому может ли это быть несколько логарифмическим? Заранее спасибо.