Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

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

Упорядочить по возрастанию модулей элементов целочисленного
массива, расположенные между третьим и пятым простыми числами
простым выбором. Распишите пожалуйста решение

По дате
По рейтингу
Аватар пользователя
Просветленный
123456789101112131415161718192021222324252627282930313233343536373839
 #include <iostream> 
#include <cmath> 
 
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) простых чисел в массиве.
Берем подмассив, начиная с элемента, следующего за третьим простым числом, и до элемента, следующего за пятым простым числом.
Сортируем выделенный подмассив по возрастанию модулей элементов (используя любой алгоритм сортировки, например, сортировку пузырьком).