С клавиатуры вводятся два натуральных числа a, b (a<=b). Найти в диапазоне от a до b (включая границы) число, имеющее максимальную сумму делителей.
(PASCAL) с применением функции
Var a,b,i,max,s,c:integer;
function sum(n:integer):integer;
var j,s:integer;
begin
s:=1+n;
for j:=2 to n div 2 do
if n mod j =0 then s:=s+ n div j;
sum:=s;
end;
begin
write(a=); readln(a);
write(b=); readln(b);
max:=0;
for i:=a to b do
if sum(i)>max then begin max:=sum(i); c:=i; end;
writeln(Число с максимальной суммой делителей (,max,) = ,c);
end.
Пример:
a=5
b=25
Число с максимальной суммой делителей (60) = 24
Оцени ответ