Números Primos

Necesito hacer un algoritmo en Java que encuentre y despliegue los números primos entre uno y cien.

2 respuestas

Respuesta
2
Con mucho gusto.
Aquí tienes el algoritmo:
public class Primos {
    public static void main(String[] args) {
        int numeroInicial = 1; //el numero donde empieza
        int numeroFinal = 100; //el numero donde termina
        for (int i = 1; i <= (numeroFinal - numeroInicial + 1); i++ ) { //se repite la cantidad de la resta de los numeros inicial
        //Y final + 1 porque ejemplo si se comienza desde 1 a 5 la diferencia es 4 pero se evalúan 5 números, 1,2,3,4 y el 5 por
        //eso se suma 1 (en tu caso la resta daría 99 pero del 1 al 100 son números)
            int divisores = 0; //un numero primo solo puede tener 2 divisores
            int numeroActual = 0;
            for (int e = 1; e <= i; e++) { //este for por ejemplo revisa 5 y lo divide por 1, luego 2, 3, 4 y hasta 5
                numeroActual = e;
                if ( (i % e) == 0) divisores++; //aumenta los divisores si se
                /*Explicación*/if (divisores == 2)  {break;} //break detiene el for
                //Al haber alcanzado los 2 divisores se detiene el for
            }
            if (numeroActual == i && i != 1)  System.out.println (i); //muestre el número si cumplió los requisitos, excepto
            //el número uno que no se considera primo
            /*Explicación*/ //En pocas palabras lo que hace ese for del e, es cancelar cuando ya se dan los dos divisores pero si
            //Es primo se cancelará en sí mismo (3 alcanza los 2 divisores después de haberse dividido entre 3) entonces
            //numeroActual que tomó ese valores se compara si 3 == 3 entonces es primo.
        }
    }
}
Cualquier pregunta estoy disponible. Si te resulta muy confuso las explicaciones que vienen en el código puedes preguntarme o borrarlas y analizarlas por ti misma.
Genera los siguientes números:
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
Espero haberte ayudado :D
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">public class Primos {
    public static void main(String[] args) {
        int numeroInicial = 1; //el numero donde empieza
        int numeroFinal = 100; //el numero donde termina
        for (int i = 1; i <= (numeroFinal - numeroInicial + 1); i++ ) { //se repite la cantidad de la resta de los numeros inicial
        //Y final + 1 porque ejemplo si se comienza desde 1 a 5 la diferencia es 4 pero se evalúan 5 números, 1,2,3,4 y el 5 por
        //eso se suma 1 (en tu caso la resta daría 99 pero del 1 al 100 son números)
            int divisores = 0; //un numero primo solo puede tener 2 divisores
            int numeroActual = 0;
            for (int e = 1; e <= i; e++) { //este for por ejemplo revisa 5 y lo divide por 1, luego 2, 3, 4 y hasta 5
                numeroActual = e;
                if ( (i % e) == 0) divisores++; //aumenta los divisores si se
                /*Explicación*/if (divisores == 2)  {break;} //break detiene el for
                //Al haber alcanzado los 2 divisores se detiene el for
            }
            if (numeroActual == i && i != 1)  System.out.println (i); //muestre el número si cumplió los requisitos, excepto
            //el número uno que no se considera primo
            /*Explicación*/ //En pocas palabras lo que hace ese for del e, es cancelar cuando ya se dan los dos divisores pero si
            //Es primo se cancelará en sí mismo (3 alcanza los 2 divisores después de haberse dividido entre 3) entonces
            //numeroActual que tomó ese valores se compara si 3 == 3 entonces es primo.
        }
    }
}
</div>
P.DE No se por qué salió duplicado al final.
Respuesta
1
necesita hacerlo con un bucle do{ wuile();
El ejemplo lo tengo en la siguiente web:
www.programandoconjava.es.tl
en la opcion problemas resueltos do while.
Si no te satisface me haces una consulta en la web que te deje y te repsonere en un máximo de 24 horas.
Ingresa consulta y siguiere.
alexis_0792@hot..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas