Цикл while i > 1 do begin означает что он будет выполняться до тех пор, пока i > 1. i изначально равно 7, и в конце каждого выполнения число уменьшается на единицу (i:=i-1). i div 2 означает деление числа на 2 с целым остатком. Исходя из вышесказанного имеем:
(Каждое выполнение цикла буду обозначать как №)
№1: 7>1 (Истина)
S:=0+3=3
i=6
№2: 6>1 (Истина)
S:=3+3=6
i:=5
№3: 5>1 (Истина)
S:=6+2=8
i:=4
№4: 4>1 (Истина)
S:=8+2=10
i:=3
№5: 3>1 (Истина)
S:=10+1=11
i:=2
№6: 2>1 (Истина)
S:=11+1=12
i:=1
№7: 1>1 (Ложь)
Вывод числа S со значением 12.
ответ: 12.
тогда сумма подряд идущих чисел, начиная с х будет равна
Sum = Nx + N*(N-1)/2
здесь второе слагаемое - это частичная сумма арифметической прогрессии 0,1,2,3...N
Максимальное значение N будет при нулевом x
1/2 (N - 1) N = 1014
N^2/2 - N/2 - 1014 = 0
N = 1/2 - sqrt(8113)/2 - нехороший корень
N = 1/2 + sqrt(8113)/2 - а это правильный, равный 45,53
Максимальное значение x будет при N=1
x = 1014, это тривиальное решение
Перебирать будем по N, просто меньше перебора
Nx + N*(N-1)/2 = 1014
Nx = 1014 - N*(N-1)/2
x = 1014/N - (N-1)/2 = (2028 - N(N-1))/(2N)
и проверять x на целостность
var
x,n,counter:longint;
begin
counter:=0;
for n:=1 to 45 do
if (2028 - N*(N-1))mod(2*N) = 0 then
begin
inc(counter);
x := (2028 - N*(N-1))div(2*N);
writeln ('x=',x,' N=',n);
end;
writeln('Всего решений ',counter);
end.
а отрезков 6