Сумма номеров страниц- это сумма арифметической прогрессии (с шагом= 1) от 1 до n (номер последней прочитанной страницы).
Такая сумма равна: n*(n+1) / 2 = Q
отсюда n*(n+1) = 2Q
Так как n -целое, то можно просто посчитать целую часть от квадратного корня из 2Q (также, я сделал проверку, правильную ли сумму ввели).
Сама программа:
алг
нач
цел Q, n
вывод "введите сумму номеров прочитанных страниц: "
ввод Q
n := int(sqrt(2*Q))
если n*(n+1) = 2*Q
то вывод "номер страницы = ", n
иначе вывод "неверная сумма номеров страниц"
все
кон
begin
var (n, m) := ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('*** Исходный массив ***');
var r := MatrRandom(n, m, -99, 99);
r.Println(4);
Writeln(4 * r.ColCount * '-');
var c := ReadInteger('Введите значение С:');
var v := r.ElementsByRow.Where(t -> t < c).ToArray;
Writeln('*** Полученый вектор ***');
v.Println;
var i := v.IndexMax;
Writeln('Максимальный элемент v[', i + 1, ']=', v[i])
end.