Создать новый вектор, элементы которого получены сперва взяв простые числа исходного, потом остальные - Pascal
Формулировка задачи:
Дано натуральное число n и х вектор содержащий n элементов. Создать новый y вектор, элементы которого получены сперва взяв простые числа, потом остальные. Заранее спасибо...
Решение задачи: «Создать новый вектор, элементы которого получены сперва взяв простые числа исходного, потом остальные»
textual
Листинг программы
- type
- MainType = ShortInt;
- function IsPrime(const x: MainType): Boolean;
- var
- Result: Boolean; //удалить строку при ошибке повторного объявления
- i: MainType;
- begin
- Result := ((x >= 2) And (x mod 2 <> 0)); i := 3;
- if (Result)
- then
- while ((Sqr(i) <= x) And Result) do
- if (x mod i = 0)
- then
- Result := False
- else
- Inc(i, 2);
- IsPrime := Result;
- end;
- var
- x, y: Array[Byte] Of MainType;
- i, n, j: Byte;
- used: Set Of Byte;
- begin
- repeat
- Write('Input n(>0): '); ReadLn(n);
- until (n > 0);
- Randomize; Write('X:');
- j := 0; used := [];
- for i := 0 to n - 1 do
- begin
- x[i] := Random(199) - 99;
- Write(x[i]:4);
- if (IsPrime(x[i]))
- then
- begin
- Write('...');
- Include(used, i);
- y[j] := x[i];
- Inc(j);
- end;
- end;
- WriteLn; i := 0;
- while (j < n) do
- begin
- if Not (i in used)
- then
- begin
- y[j] := x[i];
- Inc(j);
- end;
- Inc(i);
- end;
- Write('Y:');
- for i := 0 to n - 1 do
- Write(y[i]:4);
- WriteLn;
- end.
Объяснение кода листинга программы
- Объявляется пользовательский тип
MainType
какShortInt
. - Объявляется функция
IsPrime
для определения является ли число простым, гдеx
- входной параметр,Result
- результат проверки,i
- переменная для цикла. - Вводятся переменные:
x
,y
- массивы байтов типаMainType
i
,n
,j
- переменные типаByte
used
- множество байтов
- Выполняется ввод значения
n
, пока оно не будет больше 0. - Генерируются значения для массива
x
, выводятся и проверяются на простоту. Если значение простое, оно сохраняется в массивеy
. - Переменная
i
используется для добавления оставшихся значений в массивy
. - Значения массива
y
выводятся на экран. Код выполняет следующие действия:- Определяет простые числа в массиве
x
. - Перемещает простые числа в новый массив
y
. - Заполняет оставшиеся значения массива
y
другими значениями изx
. - Выводит массив
y
на экран.
- Определяет простые числа в массиве
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д