Red de conocimiento informático - Aprendizaje de programación - Programación Java

Programación Java

Este es un programa clásico para encontrar números primos. La clave está en dos ciclos.

El bucle externo for(i=1;ilt;=20;i){......} significa encontrar números primos entre 1 y 20 (nota: 1 no está excluido aquí).

Lo que hace el bucle interno for(j=2;jlt;=i/2;j){……} es comprobar si es un número primo: if(ij == 0) determina el i actual ¿Puede ser divisible por el j actual, porque teóricamente un número primo no puede ser divisible por este j? Si se puede dividir o el ciclo termina naturalmente, salte del ciclo interno y vaya a if(jgt;i/2). ). Aquí puede determinar cuál es. Si el motivo para saltar del bucle interno se debe a la división de enteros, significa que i no es un número primo y no se realizará ningún procesamiento si el bucle finaliza de forma natural; significa que i es un número primo y se imprimirá.

Entonces eche un vistazo a la razón por la cual j pasa de 2 a i/2. La definición de número primo es originalmente "un número natural que no es divisible por ningún número natural excepto 1 y por sí mismo". pero todos los números naturales no pueden ser mayores que Es divisible por números naturales, por lo que no es necesario considerarlo, y no es necesario considerar 1 ni él mismo, y si i puede ser divisible por j, entonces i debe ser divisible por i/j, y el cociente y el divisor se pueden intercambiar. Entonces es necesario considerar como máximo la mitad de los casos, por lo que j cuenta como i/2. De hecho, es posible calcular la raíz cuadrada de i, pero calcular la raíz cuadrada es más complicado. Es mejor calcular i/2.