Generar un número primo en PHP

PHP

Para saber si un número es primo o no en PHP podríamos utilizar la siguiente función:

function isPrime($num){
 $cont = 0;
    for ($i=1; $i <= $num; $i++) {
       if ($num % $i==0) $cont = $cont + 1;
    }
 if ($cont==2) return true;
    return false;
 }

Esta función funciona correctamente, por lo que podremos utilizarla para generar un número primo, de la siguiente forma:

function isPrime($num){
 $cont = 0;
    for ($i=1; $i <= $num; $i++) {
       if ($num % $i==0) $cont = $cont + 1;
    }
 if ($cont==2) return true;
    return false;
 }
 function getPrime(){
 $result = false;
 while(!$result){
       $random = rand(0, 1000);
       $es_primo = isPrime($random);
       if($es_primo) $result = $random;
    }
 return $result;
 }
 echo 'Número primo generado: '.getPrime();

La función getPrime realiza un bucle, generando número aleatorios entre 0 y 1000 en este caso, y comprueba si es primo o no.

Aunque no es una forma muy óptima, se puede utilizar siempre y cuando utilicemos límites no muy grandes para generar el número aleatorio.

Escribe una respuesta


17 − = 11