С клавиатуры вводятся два натуральных числа a, b (a<=b). Найти в диапазоне от a до b (включая границы) число, имеющее максимальную сумму делителей. (PASCAL)
function CalcDivisors(n: integer): integer va k, sum: integer begi sum := 1 for k := 2 to n div 2 d begi if (n mod k = 0) the sum := sum + k end Result := sum end;
begi writeln('Введите два натуральных числа a и b (a<=b): ') readln(a, b);
num := a maxSum := CalcDivisors(num);
for i := a + 1 to b d begi sum := CalcDivisors(i) if (sum > maxSum) the begi maxSum := sum num := i end end;
program MaxSumOfDivisors;
va
a, b, num, maxSum, sum, i, j: integer;
function CalcDivisors(n: integer): integer
va
k, sum: integer
begi
sum := 1
for k := 2 to n div 2 d
begi
if (n mod k = 0) the
sum := sum + k
end
Result := sum
end;
begi
writeln('Введите два натуральных числа a и b (a<=b): ')
readln(a, b);
num := a
maxSum := CalcDivisors(num);
for i := a + 1 to b d
begi
sum := CalcDivisors(i)
if (sum > maxSum) the
begi
maxSum := sum
num := i
end
end;
writeln('Число с максимальной суммой делителей: ', num)
writeln('Сумма делителей: ', maxSum)
end.