Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Linton en 16 Julio 2013, 20:23 PM

Título: [JS] ¿Programa para calcular números primos?
Publicado por: Linton en 16 Julio 2013, 20:23 PM
Llevo toda la tarde intentando hacer un programa que halle los números primos entre dos números dados, y nada  :-[ :-[

Por fin me he decidido a buscar en internet y he encontrado varias soluciones, por ejemplo: http://somos-linux.blogspot.com.es/2011/10/algoritmo-de-numero-primo-en-javascript.html
Desde luego parece que el problema es algo complicadete, ¿no? Eso me alivia en parte :)

¿Hay otra solución más recomendable? Gracias, un saludo.




MOD: Especifica el lenguaje al formular un post, no todos somos adivinos.
Título: Re: [JS] ¿Programa para calcular números primos?
Publicado por: Almapa en 17 Julio 2013, 11:04 AM
Mira a ver si este te sirve

Código (javascript) [Seleccionar]
function llenarMatriz(){
   var primo;
   var totalPrimos=0;
   var arrayPrimos = new Array();
   var number1 = prompt ('Introduzca el primer numero='); // Se piden ambos límites
   var number2 = prompt ('Introduzca el segundo numero=');
         
   for(var i=Math.min(number1,number2);i<=(Math.max(number1,number2));i++){
       primo=1;
           
       if(i==0 || i==1) // Comprueba si es 0 o 1 para evitar errores al generalizar con los otros números
       {
           arrayPrimos[totalPrimos]=i;
           totalPrimos++;
       }else{  
           
           
       for(var j=2;j<i;j++){ // Se comprueba que el residuo sea diferente de 0 para decidir si es o no primo
           if(i%j==0 ){
               primo=0;
               break;
           }
       }
           if(primo==1)
           {
               arrayPrimos[totalPrimos]=i;
               totalPrimos++;
           }
       }
             
   }  
   alert(arrayPrimos);
}


Supongo que se podría optimizar, pero así de primeras este funciona.
Un saludo
Título: Re: [JS] ¿Programa para calcular números primos?
Publicado por: Linton en 17 Julio 2013, 14:15 PM
¡Muchas gracias, voy a estudiármelo!  :)
Título: Re: [JS] ¿Programa para calcular números primos?
Publicado por: Linton en 22 Julio 2013, 19:43 PM
Esta parte no la entiendo:

Código (javascript) [Seleccionar]
if(i==0 || i==1) // Comprueba si es 0 o 1 para evitar errores al generalizar con los otros numeros       

¿Qué más da que empiece el intervalo por 0 ó 1? ¿Dónde estaría el posible error, si no se comprueba?

Muchas gracias, un saludo.
Título: Re: [JS] ¿Programa para calcular números primos?
Publicado por: Almapa en 23 Julio 2013, 00:40 AM
Creo que me equivoqué suponiendo que el 0 es un número primo, pues al dividirse por sí mismo da como resultado una indeterminación. Por lo tanto tienes razón en que en ese caso daría igual cargarse dicho condicional, pues al empezar en 1, ninguna división daría indeterminación.

El error que veía venir es que el array empezara a dividir por 0 y sacar el residuo con lo que daría seguramente error. Que se comprobara si "i==1" era tan solo por saltarme un cálculo, nada más XD (Sí, es relativamente inútil.)

Un saludo!

Título: Re: [JS] ¿Programa para calcular números primos?
Publicado por: Linton en 23 Julio 2013, 07:40 AM
¡Muchas gracias por la aclaración, un saludo!  :)