Copie o código do código da seguinte forma:
/**
* @autor jxqlovedn
* Método de peneira dos números primos de Eratóstenes, consulte: http://zh.wikipedia.org/zh-cn/Método de peneira dos números primos de Eratóstenes
*/
classe pública AratosternyAlgoritmo {
public static void getPrimes(int n) {
if(n < 2 || n > 1000000) // A razão pela qual o valor máximo é limitado a 1 milhão é devido às limitações de memória da JVM. Claro, existem outras soluções flexíveis que podem ser ignoradas (como o método bitmap).
throw new IllegalArgumentException("O parâmetro de entrada n está errado!");
int[] array = new int[n]; // Suponha que todos os números iniciais sejam números primos e que um determinado número seja um número primo, então seu valor é 0; matriz[0] é 0
array[0] = 1; // 0 não é um número primo
array[1] = 1; // 1 não é um número primo
//A seguir está o processo central de triagem
for(int i = 2; i < Math.sqrt(n);i++) { //Começa do menor número primo 2
if(matriz[i] == 0) {
for(int j = i*i; j < n; j += i) {
array[j] = 1; // Marca esta posição como um número não primo
}
}
}
//Imprime todos os números primos dentro de n, 10 saídas por linha
System.out.println(n + "Os números primos são os seguintes: ");
int count = 0; //O número de números primos atualmente gerados
int rowLength = 10; // Número de números primos gerados em cada linha
for(int i = 0; i < array.comprimento; i++) {
if(matriz[i] == 0) {
if (contagem % comprimento da linha == 0 && contagem! = 0) {
System.out.println();
}
contar++;
System.out.print(i + "/t");
}
}
}
public static void main(String[] args) {
getPrimes(99999);
}
}