Generar números primos en javascript

¿Alguien por favor me explica cómo genero los números primos hasta el 50 en javascript?

3 Respuestas

Respuesta
2

No se usar JavaScript pero te puedo decir una forma "ingenua"(sin pensarlo mucho y ni mucho menos optimizado) de como hacerlo.

Puedes hacer una lista de primos que inicialmente tiene el 2, y luego hacer un bucle que vaya del 3 al 50. Compruebas para cada número si existe un num/primo tal que el resto de la división sea 0 (primo son los números de tu lista de primos). Si para un número en concreto, ningún primo hace el resto 0 es porque el número es primo.

Ejm: vas al 3, 3/2 deja resto 1. Entonces 3 es primo y va a la lista {2,3}. Luego el 4-- 4/2 deja resto 0, no es primo, entonces pasas al siguiente. Acá puedes optimizar un poquito el código, diciendo que si en alguno ya sabes que el resto da 0 no es necesario que revises con los demás primos.

Gracias, yo todo esto lo tengo claro, pero no sé como llevarlo a javascript porque en el momento de programar me arroja error o no sale nada. Yo hice el ejercicio pero para determinar si un número ingresado por teclado es primo o no y quedó bien. Pero el otro no he podido.

Entiendo el código (sin conocer los comandos). Bueno no se como lo habrás intentado resolver. Voy a llamar "mostrar" cuando tengas que mostrar algo en pantalla

De nuevo la forma "ingenua" de hacerlo sería: poner N =50 y un contador. Para evitarnos problemas y hacer el programa más sencillo posible pongamos el contador en 3, tendrias que primero mostrar el 2. así tal cual sin nada. Luego podriamos hacer un while cont<50 . Y hacer el mismo for que tienes pero en vez de poner en el if primo true "es primo", muestras el numero. Luego fuera del for aumentas el cont en 1. Eso te debería funcionar

Respuesta
1

Lo puedes hacer así

var tope=50;
var i=1;
var n=2;
var primos = "";
var primo = true;
for (i=1; i<=tope; i+=2) {
     primo = true;
       for (n=2; n<parseInt(Math.sqrt(i)); n++) {
                 if (i%n==0 && i!=n){
                   primo = false;
              break;
          }
     }
     if (primo==true) {
            primos += i + " ";
     }
}

Luego, en la variable primos te queda la lista, puedes asignarle ese string a una caja de texto input o textarea, o puedes mostrarla en un alert, o imprimirla con consola con un console.log(primos);

Si lo necesitas puedo explicarte paso a paso como funciona para que lo comprendas bien.

Perdón, una pequeña corrección a mi código, faltó un =, quedaría así

var tope=50;
var i=1;
var n=2;
var primos = "";
var primo = true;
for (i=1; i<=tope; i+=2) {
     primo = true;
       for (n=2; n<=parseInt(Math.sqrt(i)); n++) {
                 if (i%n==0 && i!=n){
                   primo = false;
              break;
          }
     }
     if (primo==true) {
            primos += i + " ";
     }
}

Muchas gracias.

Por nada, te agradeceré que cierres la pregunta y puntúes mi respuesta.

Respuesta

Your internet site is in fact cool and this is a pleasant challenging article. Indian horse race

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas