Представьте числа по возрастанию количества делителей - Pascal ABC

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

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

Заполните массив случайными числами в интервале (100,999) и представьте их по возрастанию кол-ва делителей

Решение задачи: «Представьте числа по возрастанию количества делителей»

textual
Листинг программы
function Kol_del(n:integer):integer;
var i,k:integer;
begin
k:=2;//1 и само
for i:=2 to trunc(sqrt(n)) do//считаем делители до корня из числа и умножаем на 2
if n mod i=0 then inc(k,2);
if frac(sqrt(i))=0 then dec(k);//если число полный квадрат, то минус 1
Kol_del:=k;
end;
const n=20;
var a:array[1..n] of integer;
    i,j,x:integer;
begin
randomize;
writeln('Исходный массив');
for i:=1 to n do
 begin
  a[i]:=100+random(900);
  writeln(a[i]:4,' кол.дел.=',Kol_del(a[i]));
 end;
for i:=1 to n-1 do
for j:=i+1 to n do
if Kol_del(a[i])>Kol_del(a[j]) then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
writeln('Отсортированный массив');
for i:=1 to n do
writeln(a[i]:4,' кол.дел.=',Kol_del(a[i]));
end.

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

Данный код на языке Pascal ABC представляет собой реализацию функции Kol_del, которая принимает целое число n и возвращает количество делителей этого числа. Внутри функции используется цикл for, который выполняется от 2 до округленного значения корня из числа n. На каждой итерации цикла проверяется, делится ли число n на текущее значение i без остатка. Если да, то значение переменной k увеличивается на 2. Также проверяется, является ли число полным квадратом (frac(sqrt(i))=0). Если это так, то значение переменной k уменьшается на 1. В конце функция возвращает значение k. Далее идет основной код, который создает массив a размером n и заполняет его случайными числами от 100 до 900. Затем для каждого элемента массива выводится количество делителей, которое вычисляется с помощью функции Kol_del. Если количество делителей для текущего элемента больше, чем для следующего элемента, то происходит обмен этих элементов. В конце выводится отсортированный массив и количество делителей для каждого элемента. Таким образом, данный код решает задачу подсчета количества делителей для каждого числа в заданном массиве и выводит отсортированный массив с указанием количества делителей для каждого элемента.

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


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

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

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