epespad

Como encontrar números primos PHP

Les traigo un simple script para encontrar los números primos hasta cierto valor.

Como encontrar números primos PHP

El código está comentado para que se entienda.

<?php

//Empezamos a contar el tiempo de ejecución
$time_start microtime(true); 

function isPrime($num) {
    //1 no es primo. Ver: http://es.wikipedia.org/wiki/N%C3%BAmero_primo
    if($num == 1)
        return false;

    //2 es primo (el único número primo par)
    if($num == 2)
        return true;

    /**
     * Si el número es divisible por dos podemos descartar que sea primo*/
    if($num == 0) {
        return false;
    }

    /**
     * Chequeamos los números impares. Si alguno es un factor la función retorna falso.
     */
    for($i 3$i <= ceil(sqrt($num)); $i $i 2) {
        if($num $i == 0)
            return false;
    }

    return true;
}


//La variable max es el número mas alto a buscar
$max 1000000;
for (
$i=0$i $max $i++) { 
$test 
isPrime($i);
if (
$test == 1) {
$primos[] = $i;
}
}
/*Imprimimos los resultados incluyendo el tiempo de ejecución
Los resultados se muestran de la forma orden de resultado -> valor
*/
echo "<h2>Se buscaron números primos hasta el ".number_format($max,0,",",".")."<br>";
echo 
"Se encontraron ".number_format(count($primos),0,",",".")." números primos</h2> <br>";
//execution time of the script
$time_end microtime(true);

///Dividimos por 60 para obtener el tiempo en minutos
echo '<b><h3>Tiempo de ejecución:</b> '.($time_end $time_start).' segundos'."</h3><br>";
echo 
"<br>";
foreach (
$primos as $key => $value) {
echo (
$key+1)." -> ".number_format($value,0,",",".")."<br>";
}

El resultado es algo así:

Se buscaron números primos hasta el 100
Se encontraron 25 números primos

Tiempo de ejecución: 0.00018191337585449 segundos

1 -> 2
2 -> 3
3 -> 5
4 -> 7
5 -> 11
6 -> 13
7 -> 17
8 -> 19
9 -> 23
10 -> 29
11 -> 31
12 -> 37
13 -> 41
14 -> 43
15 -> 47
16 -> 53
17 -> 59
18 -> 61
19 -> 67
20 -> 71
21 -> 73
22 -> 79
23 -> 83
24 -> 89
25 -> 97

Comentarios Destacados

Sebastianbe +6
Y para qué me sirve esto lince?
chauchan +14
para levantar minitas maqinola, les hablas de números primos y caen muertas, va, eso me contaron
Sebastianbe +6
@chauchan Gracias por compartir tus conocimientos gato montes de los pirineos!
chauchan +6
@Sebastianbe de nada titán de las profundidades de la fosas marianas!

6 comentarios - Como encontrar números primos PHP

RogerrFederer +1
sirve para matlab? manejas matlab? tengo programacion en la universidad y usan matlab, me cuesta un monton. De donde sos y das particulares?
chauchan +1
No sirve para matlab. En matlab es mas fácil.
p = primes(n) te devuelve todos los primos menores a n. Soy de La Plata y no doy clases particulares. Te recomiendo usar la página stackoverflow, hay gente muy grosa dispuesta a ayudar.
RogerrFederer +1
@chauchan gracias capo. Nunca pense q esta pagina sea realmente de inteligencia colectiva jajaja
ChuchoMoncho +2
Busca los numeros tios y luego buscas sus hijos
chauchan +3
hoy en día con la inseminación artificial te puede dar falsos positivos
shinomoria
como lo ejecuto en algun navegador? Chrome por ejemplo.
chauchan
Necesitas un servidor php, es decir un servidor que entienda php. Podés probar el código online en http://writecodeonline.com/php/
Copia y pega el código borrando la primer línea ($php) y cambia "<br>" por PHP_EOL
Quedaría echo ($key+1)." -> ".number_format($value,0,",",".".PHP_EOL;
karlangas09
Es idea mia o falta el 91
chauchan
91 No es primo, es divisible por 7 y 13
http://91.losfactores.com/
dbasevi
buen post, pero php es un lenguaje horrible
chauchan
depende que quieras programar y no se si "horrible" es un calificativo que se aplique a lenguajes de programación. Es un lenguaje con sintaxis de la familia de C
dbasevi
@chauchan hola esta pagina la crearon porque los programadores de php jodian las pelotas: http://webonastick.com/php.html

a todos esos argumentos le agrego que php se limpia el trasero con los estandares de calidad en programacion
chauchan
@dbasevi Respondí otra cosa y me lo corto . Creo que cada lenguaje es el es mas indicado dependiendo del tipo de proyecto. Saludos