в чем ошибка: program gadanie;
var a:array[1..1000] of integer;
n,s,i: integer;
begin
readln(n);
s:=0;
for i:=1 to 1000 do
if n mod a[i] = 0 then s:=s+a[i];
writeln(s);
end.

Приложения:

Ответы

Ответ дал: ЯковПервый
0

Что касается ошибок, то в условии сказано, что введенное число n находится в диапазоне [1; 1000], то есть, программа не должна высчитывать сумму, если пользователь ввел  число, не входящее в этот диапазон. А вы вместо этого создали массив, с которым еще и вычисления проводите, хотя сами в него не занесли ни одного значения.


Вот правильный код:


var

  n, sum: integer;

   

begin

   

  write('Введите число: ');

  readln(n);

   

  if ((n >= 1) and (n <= 1000)) then

  begin

     for var i := 1 to n do

     begin

        if (n mod i = 0) then

           sum := sum + i;

     end;

     

     write('Сумма всех натуральных чисел: ', sum);

  end

   

  else

     write('Ошибка ввода! Число должно быть в диапазоне [1; 1000]');

   

end.

Приложения:
Вас заинтересует