Найти число с максимальным количеством делителей в заданном диапазоне - 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.
Объяснение кода листинга программы
- Создается функция KolDel, которая принимает целочисленный аргумент n и возвращает целочисленное значение - количество делителей числа n.
- В функции объявляются две переменные k и i, которые будут использоваться для подсчета делителей.
- Переменная k инициализируется значением 2, а переменная i устанавливается равной 2 и будет увеличиваться на 2 при каждом найденном делителе.
- Затем выполняется цикл от 2 до округленного значения корня из n. Если число n делится на i без остатка, то значение переменной k увеличивается на 2, а если дробное значение корня из n равно нулю, то значение переменной k уменьшается на 1.
- После выполнения цикла, значение переменной k будет содержать количество делителей числа n. Функция возвращает это значение.
- Создается переменная a и присваивается ей значение 1.
- Создается переменная b и считывается из ввода пользователя.
- Переменная b сравнивается с переменной a. Если b больше a, то переменная a обновляется значением b.
- Переменная mx инициализируется значением 1.
- Для каждого числа i, которое находится между a и b, выполняется проверка. Если функция KolDel(i) больше значения переменной mx, то значение переменной mx обновляется значением функции KolDel(i).
- По окончании цикла, значение переменной mx будет содержать максимальное количество делителей числа n.
- Выводится сообщение с максимальным количеством делителей числа n и номерами чисел, которые имеют это количество делителей.
- Программа повторяется, пока значение переменной b больше значения переменной a.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д