Código de PHP - Números primos

Imágen de perfil

Números primosgráfica de visualizaciones


PHP

estrellaestrellaestrellaestrellaestrella(3)
Publicado el 16 de Marzo del 2012 por Xavi
32.405 visualizaciones desde el 16 de Marzo del 2012. Una media de 133 por semana
Función que determina si un número es primo o no.

Versión 1
estrellaestrellaestrellaestrellaestrella(3)

Publicado el 16 de Marzo del 2012gráfica de visualizaciones de la versión: Versión 1
32.406 visualizaciones desde el 16 de Marzo del 2012. Una media de 133 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
for($i=1;$i<=100;$i++)
{
    if(primo($i))
        echo "El número ".$i." es primo";
    else
        echo "El número ".$i." NO es primo";
}
 
/**
 * Función que determina si un numero es primo
 * Tiene que recibir el numero a determinar si es primo o no
 * Devuelve True o False
 */
function primo($num)
{
    $cont=0;
    // Funcion que recorre todos los numero desde el 2 hasta el valor recibido
    for($i=2;$i<=$num;$i++)
    {
        if($num%$i==0)
        {
            # Si se puede dividir por algun numero mas de una vez, no es primo
            if(++$cont>1)
                return false;
        }
    }
    return true;
}
?>



Comentarios sobre la versión: Versión 1 (3)

Laurenç
16 de Marzo del 2012
estrellaestrellaestrellaestrellaestrella
Muchisimas gracias por la solución.

Muy agradecido Xavi.

Saludos,
Laurenç
Responder
lioan
18 de Septiembre del 2015
estrellaestrellaestrellaestrellaestrella
realmente te falto algun que otro detalle. solo necesitas dividir por los impares pues todos los pares no son primos porque son divisibles por 2, por supuesto que tienes que validar que si el numero = 2 el resultado sea true. a la hora de recorrer los multiplos no tienes que ir hasta el valor que te pasaron con llegar hasta el valor entero de la raiz cuadrada del numero es suficiente pues si un numero no es divisible por los numeros menores de su raiz cuadrada no es divisible por los que siguen. aqui te dejo tu mismo codigo con los cambios que te sugiero que hagas.
<?php
for($ i= 1; $i <= 100; $i ++)
{
if(primo($i))
echo "El número ".$i." es primo";
else
echo "El número ".$i." NO es primo";
}

/**
* Función que determina si un numero es primo
* Tiene que recibir el numero a determinar si es primo o no
* Devuelve True o False
*/
function primo($num)
{
if($num == 2 || $num == 3 || $num == 5 || $num == 7)
{
return True;
}
else
{
if($num % 2 != 0)
{
for($i = 3; $i <= sqrt($num); $i += 2)
{
if($num%$i==0)
{
return False;
}
}
return True;
}
else
return False
}
}
?>
Responder
Fvria
08 de Octubre del 2015
estrellaestrellaestrellaestrellaestrella
Este, Prueba con el 4 ^^. El Algoritmo.

Dentro del for en la $i.
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2166