Java: Wie funktioniert dieser Primzahlengenerator?
public static List<Integer> generateNumbers(int border) {
List<Integer> finalList = new ArrayList<>();
boolean[] bool = new boolean[border];
for (int i = 0; i < bool.length; i++) {
bool[i] = true;
}
/////////
for (int i = 2; i < Math.sqrt(border); i++) {
if (bool[i] == true) {
for (int j = (i * i); j < border; j = j + i) {
bool[j] = false;
}
}
}
////////
for (int i = 2; i < bool.length; i++) {
if (bool[i] == true) {
finalList.add(i);
}
}
return finalList;
}
Mir geht es vor allem um den Bereich, welcher in den ///////// drinnen liegt, wo ich die Nicht-Primzahlen herausfische. Kann mir jemand diese for-Schleife Schritt für Schritt erklären?
Computer,
Schule,
Mathematik,
programmieren,
Java,
Primzahlen