Как убрать лишний пробел в конце вывода ответа - Free Pascal

Узнай цену своей работы

Формулировка задачи:

У меня есть прога:
var
  f, k, j, n, d, t, p, z, sum: longint;
  sov, del: array[1..100] of integer;
  
begin
  write('');
  readln(n);
  
  for k := 1 to n-1 do
    begin
      for j := 1 to 100 do
        del[j] := 0;
        
      d := 0;
      f := k;
      for z := 1 to f-1 do
        begin
          if f mod z = 0 then
            begin
              d := d + 1;
              del[d] := z;
            end;
        end;        
      sum := 0;
      for t := 1 to d do
        sum := sum + del[t];
        
      if sum = k then
        begin
          p := p + 1;
          sov[p] := k;
        end;
    end;
    
    for k := 1 to p do
      write(sov[k],' ');
end.
КАК сделать, чтоб при выводе ответа ответ был через пробел, но без последнего пробела, тоесть введя число 30 программа выдаст ответ:6_28_. Как убрать последний пробел. (_- пробелы)

Решение задачи: «Как убрать лишний пробел в конце вывода ответа»

textual
Листинг программы
var n,i,j,k,s:integer;
begin
read(n);
s:=0;
for i:=2 to n do
 begin
  k:=1;
  j:=2;
  while j*j<i do
   begin
    if i mod j=0 then k:=k+j+i div j;
    j:=j+1;
   end;
  if k=i then
   begin
    write(i,' ');
    s:=1;
   end;
 end;
if s=0 then write(0)
end.

Объяснение кода листинга программы

  1. Объявлены пять переменных: n, i, j, k, s типа integer.
  2. Переменная n инициализируется значением, полученным от пользователя при чтении.
  3. Переменная s инициализируется нулем.
  4. Запускается цикл for, который выполняется от i=2 до n.
  5. Внутри цикла определены четыре переменные: k, j, которые инициализируются значениями 1 и 2 соответственно.
  6. Запускается внутренний цикл while, который выполняется до тех пор, пока j*j меньше i.
  7. Внутри внутреннего цикла while проверяется, делится ли i на j без остатка. Если да, то к k прибавляется j и i деленное на j.
  8. Значение j увеличивается на 1.
  9. Цикл while выполняется до тех пор, пока j*j меньше i.
  10. Если условие в внутреннем цикле while выполняется, то значение k увеличивается на i, деленное на j, и на j.
  11. Цикл for завершается.
  12. Если переменная s равна нулю, то выводится значение 0.
  13. Если в цикле for было найдено простое число, то выводится само простое число.
  14. Если в цикле for не было найдено простое число, то выводится сообщение об этом.

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы