в чем ошибка: program gadanie;var a:array[1..1000] of integer;n,s,i:
В чем ошибка: 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.
Что дотрагивается ошибок, то в условии сказано, что введенное число n находится в спектре [1; 1000], то есть, программка не обязана высчитывать сумму, если юзер ввел число, не входящее в этот спектр. А вы заместо этого сделали массив, с которым еще и вычисления проводите, хотя сами в него не внесли ни 1-го значения.
Вот верный код:
var
n, sum: integer;
begin
write('Введите число: ');
readln(n);
if ((n gt;= 1) and (n lt;= 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.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.