#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
double calculateAverage(int* arr, int length) {
int sum = 0;
int count = 0;
for (int i = 0; i < length; i++) {
sum += arr[i];
count++;
}
return (double)sum / count;
}
int main() {
int n;
printf("Введите размер матрицы: ");
scanf("%d", &n);
int matrix[n][n];
printf("Введите элементы матрицы:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
for (int j = 0; j < n; j++) {
int columnValues[n];
int count = 0;
for (int i = 0; i < n; i++) {
columnValues[count++] = matrix[i][j];
}
if (j % 2 == 0) {
double average = calculateAverage(columnValues, count);
for (int i = 0; i < n; i++) {
if (isPrime(columnValues[i])) {
matrix[i][j] = average;
break;
}
}
} else {
double average = calculateAverage(columnValues, count);
for (int i = 0; i < n; i++) {
if (!isPrime(columnValues[i])) {
matrix[i][j] = average;
break;
}
}
}
}
printf("Матрица после замен:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}