Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Решение задачи c++

vadim ignat Знаток (303), на голосовании 4 месяца назад
Упорядочить по возрастанию модулей элементов целочисленного
массива, расположенные между третьим и пятым простыми числами
простым выбором. Распишите пожалуйста решение
Голосование за лучший ответ
damn Просветленный (47322) 5 месяцев назад
 #include  
#include

bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; ++i)
if (num % i == 0) return false;
return true;
}

void sortByAbs(int arr[], int start, int end) {
for (int i = start; i < end; ++i)
for (int j = i + 1; j < end; ++j)
if (abs(arr[i]) > abs(arr[j]))
std::swap(arr[i], arr[j]);
}

int main() {
int arr[] = {10, 3, 7, 11, 13, 17, 23, 29, 5, 19};
int n = sizeof(arr) / sizeof(arr[0]);
int primes[5], count = 0;

for (int i = 0; i < n && count < 5; ++i)
if (isPrime(arr[i]))
primes[count++] = i;

if (count < 5) {
std::cout << "Недостаточно простых чисел." << std::endl;
return 1;
}

sortByAbs(arr, primes[2] + 1, primes[4] + 1);

for (int i = 0; i < n; ++i)
std::cout << arr[i] << " ";
std::cout << std::endl;

return 0;
}
Находим индексы третьего (индекс 2) и пятого (индекс 4) простых чисел в массиве.
Берем подмассив, начиная с элемента, следующего за третьим простым числом, и до элемента, следующего за пятым простым числом.
Сортируем выделенный подмассив по возрастанию модулей элементов (используя любой алгоритм сортировки, например, сортировку пузырьком).
Похожие вопросы