Найдите ошибку. ( выводит просто большее число ) Найти натуральное число из интервала от...

0 голосов
39 просмотров

Найдите ошибку. ( выводит просто большее число )
Найти натуральное число из интервала от a до b с максимальной суммой делителей.
var max,i,j,k,a,b,z:integer;
begin
k:=0;
max:=0;
readln(a,b);
for i:=a to b do
begin
for j:=1 to i do
if (i mod j)=0 then
k:=k+1;
if k>max then
begin
max:=k;
z:=i;
end;
end;
writeln (z);
end.


Информатика (54 баллов) | 39 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
  max,i,j,s,a,b,z:integer;
begin
  max:=0;
  Readln(a,b);
  for i:=a to b do begin
    s:=0;
    for j:=1 to i do
      if i mod j=0 then s:=s+j;
    if s>max then begin max:=s; z:=i end
  end;
  Writeln(z)
end.

(150k баллов)