Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Worm67
1 / 1 / 1
Регистрация: 18.12.2015
Сообщений: 54
1

Упорядочьте по возрастанию только: Элементы с порядковыми номерами, являющимися простыми числами

11.05.2016, 23:21. Просмотров 747. Ответов 1
Метки нет (Все метки)

Упорядочьте по возрастанию только: Элементы с порядковыми номерами, являющимися простыми числами
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2016, 23:21
Ответы с готовыми решениями:

Упорядочьте по возрастанию только: элементы с четными порядковыми номерами в списке
Упорядочьте по возрастанию только: элементы с четными порядковыми номерами в...

Упорядочьте по возрастанию только: положительные элементы списка
Упорядочьте по возрастанию только: положительные элементы списка

Среди номеров, являющимися простыми числами и лежащими на отрезке [a,b] найти число К
1. среди номеров, являющимися простыми числами и лежащими на отрезке найти...

Упорядочить по возрастанию модулей элементы целочисленного массива, расположенные между третьим и пятым простыми числами
Program M1; Var A : Array Of Integer; i,j,q, p, x: Integer; Begin For...

Вывести в строку только те элементы числовой последовательности, которые являются простыми числами
Вывести в строку, через пробел в прямом порядке только те элементы числовой...

1
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4508 / 3246 / 3912
Регистрация: 05.06.2014
Сообщений: 16,243
14.05.2016, 10:11 2
Лучший ответ Сообщение было отмечено Worm67 как решение

Решение

Взято отсюда:
Сортировка методом вставки чётных и нечётных чисел
и отсюда:
Алгоритм, который устанавливает – является ли число простым

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
program DualSort;
 
uses
  crt;
const
  Nmax = 10;
 
type
  TArray = array[0..Nmax - 1] of integer;
  TIndex = array[0..Nmax - 1] of integer;
 
function IsPrime(n: Longint): Boolean;
var
  i, sqrtn, delta: Word;
begin
  if (n >= 5) and ((n - 1) mod 6 = 0) or ((n + 1) mod 6 = 0) then begin
    i := 5;
    delta := 2;
    sqrtn := Trunc(sqrt(n));
    IsPrime := False;
    while i <= sqrtn do 
    begin
      if n mod i = 0 then Exit;
      Inc(i, delta);
      delta := delta xor 6; {смена шага, то 2, то 4}
    end;
    IsPrime := True;
  end else
    IsPrime := (n = 2) or (n = 3);
end;
 
procedure GetIndexes(const a: TArray; var Indx: TIndex; var n: integer;
    ParityEven: boolean);
var
  i: integer;
begin
  n := 0;
  for i := low(a) to high(a) do
    if IsPrime(a[i]) xor ParityEven then
    begin
      Indx[n] := i;
      Inc(n);
    end;
end;
 
procedure sort(var a: TArray; const Indx: TIndex; n: integer; DirectUp: boolean);
var
  i, j: integer;
  x: integer;
begin
  if n < 2 then
    Exit;
  for i := 0 to n - 1 do
    for j := i + 1 to n - 1 do
    begin
      if (a[Indx[i]] < a[Indx[j]]) xor DirectUp then
      begin
        x := a[Indx[i]];
        a[Indx[i]] := a[Indx[j]];
        a[Indx[j]] := x;
      end;
    end;
end;
 
var
  a: TArray = (8, 1, 6, 3, 4, 5, 2, 7, 0, 9);
  i: integer;
  Indexes: TIndex;
  Len: integer;
 
begin
  clrscr;
  Writeln('Исходный массив:');
  for i := low(a) to high(a) do
  begin
    if IsPrime(a[i]) then
      TextColor(Red)
    else
      TextColor(White);
    Write(a[i]:4);
  end; 
  Writeln;  
  GetIndexes(a, Indexes, Len, True);
  sort(a, Indexes, Len, true);
  GetIndexes(a, Indexes, Len, False);
  sort(a, Indexes, Len, False);
  Writeln('Сортированный массив:');
  for i := low(a) to high(a) do
  begin
    if IsPrime(a[i]) then
      TextColor(Red)
    else
      TextColor(White);
    Write(a[i]:4);
  end; 
  writeln;
end.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2016, 10:11

Вывести элементы массива с порядковыми номерами, кратными K
Составьте программы, пожалуйста: 1) Дан массив A размера N и целое число K ....

Вывести элементы массива с порядковыми номерами, значения которых кратны k
Дан массив А размера N и целое число k(1&lt;=K&lt;=N). Вывести элементы массива с...

Переписать в новый целочисленный массив B все элементы с нечетными порядковыми номерами.
В очередной раз прошу помощи в решении сложного (пока) для меня задания,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru