Паскаль - запишите все делители числа и суммируйте их - PullRequest
0 голосов
/ 22 октября 2018

Я только начал программировать, и нам дали назначение в заголовке.Я понятия не имею, как получить эти числа в суммируемой форме, поэтому я подумал, что по крайней мере напишу их, но по какой-то причине я не вижу, это не работает.Любой совет?

  var
      a,i: integer;
      del: array [1..32767] of boolean;
  begin
      i:=1;
      readln(a);
      for i:=1 to 32767 do del[i]:=false;
      while i<>a do
      begin
          for i:=1 to 32767 do
              begin
              if (a MOD i =0) then del[i]:=true;
              end
      end;
      if del[i] then writeln(i,' je delitelem ',a);
  end.

Пожалуйста, учтите, что я новичок, спасибо!

1 Ответ

0 голосов
/ 22 октября 2018

Вы на правильном пути, но на самом деле вам даже не нужно хранить делители - просто выведите каждый из них, как он найден (mod = 0), и добавьте его значение в переменную аккумулятора.

И тогда вам также не нужно while.Вместо этого измените цикл for, чтобы он увеличился до a вместо 32767.

...