#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
bool is_prime(int n) {
if (n == 1 || n == 0) {
return false;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
void generate_prime_numbers(int size, int prime_numbers_array[]) {
int i = 0;
int num = 2;
while (i < size) {
if (is_prime(num)) {
prime_numbers_array[i] = num;
i++;
}
num++;
}
}
void fill_matrix_with_prime_number(int rows, int cols, int matrix[][cols]) {
int size = rows * cols;
int *prime_numbers_array = malloc(size * sizeof(int));
if (prime_numbers_array == NULL) {
fprintf(stderr, "Memory allocation failed\n");
exit(EXIT_FAILURE);
}
generate_prime_numbers(size, prime_numbers_array);
int index = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
matrix[i][j] = prime_numbers_array[index];
index++;
}
}
free(prime_numbers_array);
}
int main() {
int rows = 4, cols = 5;
int matrix[4][5];
fill_matrix_with_prime_number(rows, cols, matrix);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%3d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
/*
run:
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
*/