How to fill a matrix with prime numbers in PHP

1 Answer

0 votes
function is_prime($n) { 
    if ($n == 1 || $n == 0) { 
        return false; 
    } 
    for ($i = 2; $i <= sqrt($n); $i++) { 
        if ($n % $i == 0) { 
            return false; 
        } 
    } 
   
    return true; 
} 
 
function generate_prime_numbers($size) {
    $prime_numbers_array = []; 
    $i = 0;
    $num = 2;
     
    while ($i < $size) {
        if (is_prime($num)) { 
            $prime_numbers_array[] = $num; 
            $i++;
        } 
        $num++;
    }
 
    return $prime_numbers_array; 
}
 
function fill_matrix_with_prime_number($rows, $cols) {
    $prime_numbers_array = generate_prime_numbers($rows * $cols); 
    $matrix = []; 
    $index = 0; 
     
    for ($i = 0; $i < $rows; $i++) {
        $matrix[$i] = []; // create row
        for ($j = 0; $j < $cols; $j++) {
            $matrix[$i][$j] = $prime_numbers_array[$index]; 
            $index++; 
        }
    }
   
    return $matrix; 
}
 
 
$rows = 4;
$cols = 5;
 
$matrix = fill_matrix_with_prime_number($rows, $cols); 
 
print_r($matrix); 
 
 
 
/*
run:
 
Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 3
            [2] => 5
            [3] => 7
            [4] => 11
        )
 
    [1] => Array
        (
            [0] => 13
            [1] => 17
            [2] => 19
            [3] => 23
            [4] => 29
        )
 
    [2] => Array
        (
            [0] => 31
            [1] => 37
            [2] => 41
            [3] => 43
            [4] => 47
        )
 
    [3] => Array
        (
            [0] => 53
            [1] => 59
            [2] => 61
            [3] => 67
            [4] => 71
        )
 
)
 
*/

 



answered Feb 16, 2024 by avibootz
edited Feb 17, 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 263 views
1 answer 284 views
1 answer 197 views
...