С клавиатуры вводятся два натуральных числа 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
Answers & Comments
Verified answer
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