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

27 Апр 2020 в 19:40
140 +1
0
Ответы
1

program MaxSumOfDivisors;

var
a, b, num, maxSum, sum, i, j: integer;

function CalcDivisors(n: integer): integer;
var
k, sum: integer;
begin
sum := 1;
for k := 2 to n div 2 do
begin
if (n mod k = 0) then
sum := sum + k;
end;
Result := sum;
end;

begin
writeln('Введите два натуральных числа a и b (a<=b): ');
readln(a, b);

num := a;
maxSum := CalcDivisors(num);

for i := a + 1 to b do
begin
sum := CalcDivisors(i);
if (sum > maxSum) then
begin
maxSum := sum;
num := i;
end;
end;

writeln('Число с максимальной суммой делителей: ', num);
writeln('Сумма делителей: ', maxSum);
end.

18 Апр 2024 в 13:11
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир