Найти число с максимальным количеством делителей в заданном диапазоне - Pascal

Узнай цену своей работы

Формулировка задачи:

Для натуральных чисел из диапазона от A до B вывести число с максимальным количеством делителей. Решить задачу с помощью функции, которая подсчитывает количество заданного натурального числа.

Решение задачи: «Найти число с максимальным количеством делителей в заданном диапазоне»

textual
Листинг программы
function KolDel(n:integer):integer;
var i,k:integer;
begin
k:=2; //1 и само число
for i:=2 to trunc(sqrt(n)) do //остальные делители
if n mod i=0 then inc(k,2);
if frac(sqrt(n))=0 then dec(k);//если число полный квадрат, то минус 1
KolDel:=k;
end;
var a,b,i,mx:integer;
begin
repeat
writeln('Ведите интервал вычислений b>a');
readln(a,b);
until b>a;
mx:=1;
for i:=a to b do
if KolDel(i)>mx then mx:=KolDel(i);
writeln('Максимальное количество делителе=',mx,' имеют:');
for i:=a to b do
if KolDel(i)=mx then write(i,' ');
end.

Объяснение кода листинга программы

  1. Создается функция KolDel, которая принимает целочисленный аргумент n и возвращает целочисленное значение - количество делителей числа n.
  2. В функции объявляются две переменные k и i, которые будут использоваться для подсчета делителей.
  3. Переменная k инициализируется значением 2, а переменная i устанавливается равной 2 и будет увеличиваться на 2 при каждом найденном делителе.
  4. Затем выполняется цикл от 2 до округленного значения корня из n. Если число n делится на i без остатка, то значение переменной k увеличивается на 2, а если дробное значение корня из n равно нулю, то значение переменной k уменьшается на 1.
  5. После выполнения цикла, значение переменной k будет содержать количество делителей числа n. Функция возвращает это значение.
  6. Создается переменная a и присваивается ей значение 1.
  7. Создается переменная b и считывается из ввода пользователя.
  8. Переменная b сравнивается с переменной a. Если b больше a, то переменная a обновляется значением b.
  9. Переменная mx инициализируется значением 1.
  10. Для каждого числа i, которое находится между a и b, выполняется проверка. Если функция KolDel(i) больше значения переменной mx, то значение переменной mx обновляется значением функции KolDel(i).
  11. По окончании цикла, значение переменной mx будет содержать максимальное количество делителей числа n.
  12. Выводится сообщение с максимальным количеством делителей числа n и номерами чисел, которые имеют это количество делителей.
  13. Программа повторяется, пока значение переменной b больше значения переменной a.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы