How to fill a matrix with prime numbers in C++

1 Answer

0 votes
#include <vector>
#include <iostream>

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

	return true;
}

void fill_matrix_with_prime_number(std::vector<std::vector<int>> &matrix) {
	int rows = matrix.size();
	int cols = matrix[0].size();
	int total = rows * cols;
	std::vector<int> result(total);
	int index = 0;
	int num = 2;

	while (index < total) {
		if (isPrime(num) == true) {
			result[index] = num;
			index++;
		}
		num++;
	}

	index = 0;
	for (int i = 0; i < rows; i++) {
		for (int j = 0; j < cols; j++) {
			matrix[i][j] = result[index];
			index++;
		}
	}
}

int main()
{
	int rows = 4, cols = 5;
	
	std::vector<std::vector<int>> matrix(rows, std::vector<int>(cols));

	fill_matrix_with_prime_number(matrix);

	for (int i = 0; i < rows; i++) {
		for (int j = 0; j < cols; j++) {
    	    std::cout << matrix[i][j] << " ";
		}
		std::cout << std::endl;
	}
}



/*
run:
   
2 3 5 7 11 
13 17 19 23 29 
31 37 41 43 47 
53 59 61 67 71 

*/

 



answered Feb 16, 2024 by avibootz

Related questions

1 answer 300 views
300 views asked Feb 17, 2024 by avibootz
1 answer 222 views
1 answer 204 views
1 answer 246 views
1 answer 233 views
1 answer 284 views
1 answer 197 views
...