Concepto de número primo
Un número primo, también conocido como número primo, se refiere a un número natural mayor que 1 que no es divisible por otros números naturales excepto 1 y el entero mismo (también se puede definir como un número con solo dos factores: 1 y él mismo). ).
El número primo más pequeño es 2, que también es el único número par entre los números primos; los demás números primos son todos números impares; Hay infinitos números primos, por lo que no existe un número primo mayor.
1: Resuelve según la definición:
También es la forma más estúpida y tiene baja eficiencia:
paquete test.ms;public class FindPrime { // encuentra el número primo entre 1 y 1000;public static void main(String[] args) { printPrime(1000);}public static void printPrime(int n){for(int i = 2; i < n ; i++){int recuento = 0;para(int j = 2 ; j<=i; j++){if(i%j==0){count++;}if(j==i & count == 1){System.out.print(i+" ");}if(count > 1){break; }}}}}
2: Raíz cuadrada:
paquete test.ms;public class Prime { public static void main(String[] args) {for(int j = 2; j<1000; j++){if(m(j)){System.out.print(j+" ");}}}público estático booleano m(int num){for(int j = 2; j<=Math.sqrt(num);j++){if(num%j == 0){return falso;}}devuelve verdadero;}}
3: Encuentra patrones (extraído de una discusión en un foro)
El número primo más pequeño es 2, que también es el único número par entre los números primos; los demás números primos son todos números impares; Hay infinitos números primos, por lo que no existe un número primo mayor.
paquete test.ms;import java.util.ArrayList;import java.util.List;public class Primes { public static void main(String[] args) { // Encuentra números primos Lista<Integer> primos = getPrimes(1000); // Resultado de salida para (int i = 0; i < primes.size(); i++) { Entero primo = primes.get(i); System.out.printf("%8d", prime); if (i % 10 == 9) { System.out.println() } } } /** * Encuentra todos los números primos dentro de n* * @param n Rango* * @return todos los números primos dentro de n*/ private static List<Integer> getPrimes(int n) { List<Integer> result = new ArrayList<Integer>(); resultado.add(2); para (int i = 3; i <= n; i += 2) { if (!divisible(i, resultado)) { resultado.add(i); ** * Determinar si n es divisible * * @param n El número a juzgar * @param primes Una lista que contiene números primos * * @return Devuelve verdadero si n puede ser divisible por cualquiera de los primos. */ private static boolean divisible(int n, List<Integer> primos) { for (Entero primo: primos) { if (n % primo == 0) { return true } } return false }}
El primer y segundo método son muy simples:
El tercer método ilustra las propiedades de un número primo: entre todos los números primos, sólo 2 es par.
Un número no es primo si es divisible por el número primo anterior.