Код:
function Summ(ai:integer):integer;
var j,k:integer;
begin
if ai=1 {если заданное число 1, то у него один делитель}
then Summ:=1 {значению функции присваивается 1}
else {если не равно 1}
begin
k:=0; {обнуление суммы}
for j:=1 to ai do {инициализация цикла до заданного числа}
if (ai mod j)=0 then {если нет остатка при делении, то это делитель}
k:=k+j; {суммирование делителей}
Summ:=k; {значению функции присваивается сумма}
end;
end;
var n,m,i,sum,t,e:integer;
begin
Write('M = ');
Readln(m); {ввод первого значения диапазона}
Write('N > M = ');
Readln(n); {ввод второго значения диапазона}
Writeln;
sum:=0; t:=0; {обнуление наибольшей суммы делителей}
for i:=m to n do {инициализация цикла перебора в диапазоне}
begin
e:=Summ(i); {вызов функции подсчёта суммы делителей очередного числа}
if e>sum then {если значение функции больше наибольшей суммы то}
begin
t:=i; {запоминаем число}
sum:=e; {запоминаем сумму}
end
end;
Writeln('Cislo = ',t);
Writeln('Summa deliteley = ',sum);
Readln;
end.