С клавиатуры вводятся два натуральных числа a, b (a<=b). Найти в диапазоне от a до b (включая границы) число, имеющее максимальную сумму делителей.
(PASCAL) с применением функции
Ответы на вопрос
Ответил petyaGavrikov
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
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
Новые вопросы
Математика,
2 года назад
Алгебра,
2 года назад
Алгебра,
8 лет назад
Математика,
8 лет назад
Математика,
9 лет назад