// zadanie_9.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include #include using namespace std; void fillArr(int* pArr, int sizeOfArr); void showArr(int* pArr, int sizeOfArr); void mixArrs(int* pArr, int sizeOfArr, int* pYArr); int primeNums(int* pArr, int sizeOfArr); bool isPrime(int n); double avg(int* pArr, int sizeOfArr); int main() { clock_t t; t = clock(); setlocale(0, "rus"); cout << "Введите кол-во элементов массива: \n"; int sizeOfArr = 0; cin >> sizeOfArr; cout << "\tX(N):\n"; int* pArr = new int[sizeOfArr]; fillArr(pArr, sizeOfArr); showArr(pArr, sizeOfArr); cout << "Кол-во простых чисел:\n"; cout << primeNums(pArr, sizeOfArr) << endl; cout << "Среднее арифметическое:\n"; cout << avg(pArr, sizeOfArr) << endl << endl; cout << "\tY(k):\n"; int sizeOfYArr = sizeOfArr / 2; int* pYArr = new int[sizeOfYArr]; mixArrs(pArr, sizeOfArr, pYArr); showArr(pYArr, sizeOfYArr); cout << "Кол-во простых чисел:\n"; cout << primeNums(pYArr, sizeOfYArr) << endl; cout << "Среднее арифметическое:\n"; cout << avg(pYArr, sizeOfYArr) << endl << endl; delete[] pArr; delete[] pYArr; t = clock() - t; cout << "--Затрачено " << ((float)t) / CLOCKS_PER_SEC << " секунд--\n"; return 0; } void fillArr(int* pArr, int sizeOfArr) { srand(time(0)); for (int i(0); i < sizeOfArr; i++) { pArr[i] = rand() % 30 + 1; } } void showArr(int * pArr, int sizeOfArr) { for (int i(0); i < sizeOfArr; i++) { cout << pArr[i] << ' '; } cout << endl; } void mixArrs(int * pArr, int sizeOfArr, int * pYArr) { int j(0); for (int i(1); i < sizeOfArr; i += 2) { pYArr[j] = pArr[i]; j++; } } int primeNums(int * pArr, int sizeOfArr) { int count = 0; for (int i(0); i < sizeOfArr; i++) { if (isPrime(pArr[i])) count++; } return count; } bool isPrime(int n) { for (int i = 2; i < sqrt(n); i++) { if (n % i == 0) { return false; // число делится, сл. непростое } } return n > 1; } double avg(int * pArr, int sizeOfArr) { int summ = 0; for (int i(0); i < sizeOfArr; i++) { summ += pArr[i]; } double avgN = double(summ) / double(sizeOfArr); return avgN; }