[Java] Finden Sie die Primzahl mit dem Eratostenes-Sieb

Einführung

In meiner üblichen Entwicklung habe ich keine Chance, den Lehrbuchalgorithmus zu berühren, deshalb habe ich einen Code geschrieben, um eine Primzahl zu finden, wobei "Eratostenes 'Sieb" als Gehirnübung verwendet wurde.

Code

PrimeNumberFinder.java


static void printPrimeNumbers(int maxNumber) {

	//Schritt 1: Fügen Sie "Ganzzahl von 2 bis Obergrenze" in die Suchliste ein.
	List<Integer> targetNumbers = IntStream.rangeClosed(2, maxNumber).boxed().collect(Collectors.toList());

	//Primzahlliste
	List<Integer> primeNumbers = new ArrayList<Integer>();

	int sqrt = (int) Math.sqrt(maxNumber);

	//Schritt 3: Setzen Sie den Siebvorgang fort, bis der erste Wert in der Suchliste die Quadratwurzel des Arguments erreicht.
	while(targetNumbers.get(0)<=sqrt) {
		//Schritt 2: Fügen Sie die erste Nummer in der Suchliste in die Primzahlliste ein und zeigen Sie Vielfache aus der Suchliste an.
		int firstNum = targetNumbers.get(0);
		primeNumbers.add(firstNum);
		targetNumbers.removeIf(num -> (num % firstNum == 0));
	}

	//Schritt 4: Verschieben Sie die in der Suchliste verbleibenden Werte in die Primzahlenliste und beenden Sie den Vorgang.
	primeNumbers.addAll(targetNumbers);

	//Anzeige von Primzahlen
	System.out.println(primeNumbers.stream().map(pNum -> pNum.toString()).collect(Collectors.joining("\t")));
}
//Ausgabeergebnis, wenn im Argument von printPrimeNumbers 100 angegeben ist
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	

Beiseite

Recommended Posts

[Java] Finden Sie die Primzahl mit dem Eratostenes-Sieb
[Java] Finde die Primzahl mit dem Eratostenes-Sieb (Teil 2)
So finden Sie Java-Primzahlen
Berechnen Sie Primzahlen in Java
Erstellen Sie mit JAVA eine unveränderliche Klasse
Führen Sie in Java8 geschriebene Anwendungen in Java6 aus
[Java] Erstellen Sie mit Gradle ein ausführbares Modul
[Algorithmus] N Zahlen mit einem Intervall von X.
Primzahlen beurteilen
Versuchen Sie, das Eratostenes-Sieb mithilfe der Java-Standardbibliothek zu implementieren
Implementieren Sie Singleton mit Enum schnell in Java