Определить натуральное число не больше заданного n - Pascal ABC
Формулировка задачи:
Определить натуральное число не больше заданного
n
с наибольшей суммой делителей.
Использовать функцию вычисления суммы делителей числа
Решение задачи: «Определить натуральное число не больше заданного n»
textual
Листинг программы
function SumDel(n:integer):integer; var i,s:integer; begin s:=n+1; //1 и само число for i:=2 to trunc(sqrt(n)) do //остальные делители if n mod i=0 then inc(s,i+n div i);//сам делитель и n/i if frac(sqrt(n))=0 then dec(s,trunc(sqrt(n)));//если число полный квадрат, то //минус корень из n SumDel:=s; end; var n,i,j,mx,imx:integer; begin write('Ведите натуральное число n='); readln(n); mx:=1; imx:=1; for i:=2 to n do begin j:=SumDel(i); if j>mx then begin mx:=j; imx:=i; end; end; writeln('Максимальная сумма делителей у числа ',imx,' она = ',mx) end.
Объяснение кода листинга программы
- Сохраняет в переменной s значение n+1
- Использует цикл for для перебора всех чисел от 2 до корня из n (используя функцию trunc(sqrt(n)) для округления результата вниз до ближайшего целого числа)
- Проверяет, делится ли n на текущее значение i без остатка (используя оператор mod)
- Если да, то увеличивает значение переменной s на i и на (n/i) (используя оператор inc и функцию div)
- Если n является полным квадратом (используя функцию frac для получения дробной части от корня из n), то уменьшает значение переменной s на корень из n (используя функцию trunc для округления результата вниз до ближайшего целого числа)
- Функция SumDel возвращает значение переменной s
- Задает начальные значения переменных mx и imx равными 1
- Использует цикл for для перебора всех чисел от 2 до n
- Внутри цикла вызывает функцию SumDel для каждого числа i
- Если функция SumDel возвращает значение j, которое больше текущего значения mx, то обновляет значения mx и imx
- Выводит сообщение с максимальной суммой делителей и числом, для которого эта сумма была получена.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д