Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Me ayudan con este codigo

mandracke

Bovino maduro
Desde
4 Dic 2008
Mensajes
163
Tengo que hacer un codigo que detecte si un numero es primo o no, para ello me baso en la siguiente regla matematica:
La mejor forma de saber si un número es primo es dividirlo por todos los números naturales que están entre el 2 y el natural que está después de su raiz cuadrada (en caso de no ser esta entero, si lo fuera ya sabríamos que no es primo). Si la división por alguno de estos da un número entero es que no es primo y de lo contrario si lo es. O sea que si 11 es primo, lo debo dividir por 2, 3 y 4 ya que su raíz está entre 3 y 4.
11/2 = 5.5
11/3 = 3.6666666...
11/4 = 2.75
Como ninguno es entero entonces 11 es primo.
Si se prueba con 12 hay que dividir por 2, 3 y 4 ya que su raíz está también entre 3 y 4.
12/2 = 6
ya puede saberse que no es primo.
Este método funciona para números grandes y facilita el trabajo ya que no hay que dividir por todos los números que hay entre 2 y el que interesa estudiar.
y mi codigo es el siguiente:
Código:
<script language="javascript">
nro = prompt ("ingrese un numero", 0)
if (isNaN (nro) == true){ 
    alert("Ingrece un numero por favor")
}
    else{
        if (nro %2 == 0){
            alert ("Numero no primo")
        }
        else{
            for variable = 2; variable =< (1+(1/^nro));++){
                if (variable/nro %2 == 0){
                    alert ("Numero no primo")
                    }
                }
                    else{
                        alert ("Numero primo")
                    }
    }
</script>
tiene un error pero no detecto donde si alguien puede ayudarme le agradesco
 
OK, estamos de buenas.
El siguiente algoritmo se basa en el principio de que un numero primo solo es dividido 2 veces, una con la unidad (el numero 1) y otra con el mismo.
Esta funcion revisa el resultado e la division del numero con todos sus subnumeros, si es 0 por mas de 2 veces no es primo, de lo contrario si lo es.

<html>
<head>
<script language="javascript" type="text/javascript">
var numeroEvaluar = prompt("Ingresa el numero", "");

if (isNaN(numeroEvaluar)){
alert("Lo siento, no es un valor numerico");
} else if (numeroEvaluar <= 0){
alert("Debes ingresar un numero mayor a 0");
} else {
alert(evaluaPrimo(numeroEvaluar));
}

function evaluaPrimo(numero){
var vecesDivisible = 0;
var numeroDivisor;
var esPrimo = false;

for (numeroDivisor = 1; numeroDivisor <= numero; numeroDivisor ++){
if ((numero % numeroDivisor) == 0){
vecesDivisible ++;
}
}

if (vecesDivisible == 2){
esPrimo = true;
}

return esPrimo;
}

</script>
</head>

<body>
</body>
</html>

Ojo, este algoritmo no toma en cuenta en numero 1, (sabras que hay quien dice que el uno si es primo, y qiuen dice que no pues el mismo es la unidad) este algoritmo toma la segunda premisa, pero si gustaras lo primera solo hay que cambiar un detalle, te lo dejo a reserva.

Espero te sirva, ciao.
 
gracias, me has ahorrado una gran haqueca el codigo que habia creado tenia un par de errores pero que ya habia solucionado pero no daba con la tecla para que enunciara el "el numero es primo"
salu3
 
Volver
Arriba