Перестановка элементов массива по количеству делителей - PascalABC.NET

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

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

Задание такое: Заполните массив случайными числами в интервале (100,999) и переставьте их по возрастанию количества делителей. Я написал программу до момента, когда переставляются делители, но не знаю, как их привязать к элементами массива, чтобы те тоже отсортировались. Помогите доработать, пожалуйста

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

textual
Листинг программы
const
  N = 10;
 
begin
  Writeln('Программа для перестановки элементов массива по возрастанию количества делителей'); 
  var a := ArrRandomInteger(N, 100, 999);
  writeln('Элементы массива:');a.Println(#9);
  
  writeln('Количество делителей элементов массива:');
  var divs := a.Select(x -> 1 + Range(1, x div 2).Count(d -> x mod d = 0)).Println(#9).ToArray;
  
  writeln('Делители элементов массива в результате перестановки:');
  var ix := divs.Indexes.OrderBy(x -> divs[x]);
  ix.Select(i -> divs[i]).Println(#9);
  
  writeln('Элементы массива после перестановки: ');
  ix.Select(i -> a[i]).Println(#9); // можно и a := ix.Select(i -> a[i]).Println(#9);
end.

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

  1. В начале программы объявляется константа N, которая задает размер массива.
  2. Затем выводится приветствие и описание задачи.
  3. Создается массив a случайных целых чисел размером N.
  4. Выводится список элементов массива с их индексами.
  5. Далее, для каждого элемента массива вычисляется количество делителей (нечётных чисел, на которые он делится без остатка).
  6. Полученные количества делителей сохраняются в массиве divs.
  7. Выводится список этих количеств с их индексами.
  8. Затем, элементы массива a переставляются в соответствии с количеством их делителей, и новый список делителей сохраняется в массиве divs.
  9. Выводится новый список делителей.
  10. Наконец, выводится новый список элементов массива после перестановки.

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


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

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

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