С клавиатуры вводятся два натуральных числа a, b (a<=b). Найти в диапазоне от a до b...

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

С клавиатуры вводятся два натуральных числа a, b (a<=b). Найти в диапазоне от a до b (включая границы) число, имеющее максимальную сумму делителей.<br> (PASCAL) с применением функции


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

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

(194k баллов)