25. BozoSort26. Шаблон BozoSort27. TOP — 5 минимальных28. Факторизация натурального числа

25. BozoSort

Ссылка для тренировки

 

С++ и Python

Реализуйте сортировку методом BozoSort. Данную сортировку реализуйте в виде трёх отдельных функций для следующих случаев:

  1. Массива целых чисел (std::vector<int> для С++ и list для Python);
  2. Двумерного массива целых чисел (std::vector<std::vector<int>> для С++ и список из списков для Python). Количество строк и столбцов одинаковое;
  3. Трёх отдельных целых чисел.

Примечание 1: в Python параметр *args использовать запрещено.

Примечание 2: использовать одну функцию в другой можно.

Для всех трёх случаев:

Продемонстрируйте работу функций отсортировав входные данные сначала по возрастанию, затем по убыванию.

Формат ввода
В первой строке задаётся одно целое число — количество чисел требующий сортировки , при этом корень из - целое число. В следующей строке через пробел задаются сам числа. Для функций принимающих двумерный массив количество столбцов и строк определяется как . Для функций принимающих три числа ввод всегда ограничен первыми тремя числами.

Формат вывода
В отдельных строках выведите числа отсортированные сначала по возрастанию, затем по убыванию. И так для каждой функции.

Пример 1

ВводВывод
4
2 1 7 -3
-3 1 2 7
7 2 1 -3
-3 1 2 7
7 2 1 -3
1 2 7
7 2 1

 

26. Шаблон BozoSort

Ссылка для тренировки

С++

Реализуйте шаблоны функций описанных в задании 25. Продемонстрируйте работу на примере: чисел: double и сток: std::string.

Формат ввода
В первой строке задаётся одно целое число — количество значений требующий сортировки , при этом корень из - целое число. В следующей строке через пробел задаются сам значения. Для функций принимающих двумерный массив количество столбцов и строк определяется как . Для функций принимающих три значения ввод всегда ограничен первыми тремя значениями. Далее ввод повторяется.
В первом случае требуется считать данные как вещественные числа, во втором случае как строки.

Формат вывода
В отдельных строках выведите значения отсортированные сначала по возрастанию, затем по убыванию. И так для каждой функции.

Пример 1 (double)

ВводВывод
4
2 1 7 -3
4
2 1 7 -3
-3 1 2 7
7 2 1 -3
-3 1 2 7
7 2 1 -3
1 2 7
7 2 1
-3 1 2 7
7 2 1 -3
-3 1 2 7
7 2 1 -3
1 2 7
7 2 1

 

27. TOP — 5 минимальных

Задача без теста

С++ и Python

Вам известна последовательность поступления сигналов с устройства.
После каждого поступившего сигнала необходимо вывести 5 самых минимальных сигналов от начала наблюдений. Если сигналов было меньше, то нужно вывести все имеющиеся сигналы.
Выводите сигналы в порядке убывания.

Формат ввода
В первой строке записано одно целое число () — количество сигналов. Во второй строке записаны целых чисел ().

Формат вывода
Выведите строк, в каждой из которых будут записаны, в порядке убывания, самые минимальные 5 сигналов (или все, если наблюдений было меньше 5).

Пример 1

ВводВывод
3
3 1 2
3
3 1
3 2 1

Пример 2

ВводВывод
8
1 2 3 4 5 6 7 0
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
4 3 2 1 0

 

28. Факторизация натурального числа

Задача без теста

С++ и Python

Факторизацией натурального числа называется его разложение в произведение простых множителей.
Реализуйте функцию выполняющую факторизацию и отображающую на экран разложение переданного ей числа на простые множители.

Прототип функции:

Формат ввода
В единственной строке вводится натуральное число ().

Формат вывода
Простые множители без повторения разделённые знаком умножения *, если есть несколько одинаковых сомножителей, то кол-во повторений записывается как показатель степени у этого сомножителя.

Пример 1

ВводВывод
102*5

Пример 2

ВводВывод
9993^3*37
Тестовые данные
1 − 20
1
22
33
422
55
62·3
77
823
932
102·5
1111
1222·3
1313
142·7
153·5
1624
1717
182·32
1919
2022·5
21 − 40
213·7
222·11
2323
2423·3
2552
262·13
2733
2822·7
2929
302·3·5
3131
3225
333·11
342·17
355·7
3622·32
3737
382·19
393·13
4023·5
41 − 60
4141
422·3·7
4343
4422·11
4532·5
462·23
4747
4824·3
4972
502·52
513·17
5222·13
5353
542·33
555·11
5623·7
573·19
582·29
5959
6022·3·5
61 − 80
6161
622·31
6332·7
6426
655·13
662·3·11
6767
6822·17
693·23
702·5·7
7171
7223·32
7373
742·37
753·52
7622·19
777·11
782·3·13
7979
8024·5
81 − 100
8134
822·41
8383
8422·3·7
855·17
862·43
873·29
8823·11
8989
902·32·5
917·13
9222·23
933·31
942·47
955·19
9625·3
9797
982·72
9932·11
10022·52