Предмет: Информатика,
автор: sinitsyn
в чем ошибка: 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.
Приложения:

sinitsyn:
вообще я хочу перебрать массив от 1 до 1000 есть остаток или нет
Ответы
Автор ответа:
2
Что касается ошибок, то в условии сказано, что введенное число 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.
Приложения:

Похожие вопросы
Предмет: Математика,
автор: Аноним
Предмет: Геометрия,
автор: tiskovatatana19
Предмет: Литература,
автор: Abcdefghigklm
Предмет: Литература,
автор: trololoshka25