Zurück zu den Herausforderungen
Mittel 0 gelöst 0% Erfolgsquote

Primzahlen mit einem Sieb auflisten

Finde Primzahlen bis zu einem Grenzwert, indem zusammengesetzte Vielfache markiert werden.

Gib alle Primzahlen von 2 bis einschließlich limit zurück. Eine Primzahl ist eine ganze Zahl größer als 1, die nur durch 1 und sich selbst teilbar ist. Verwende das Sieb-Prinzip: Behalte die nächste unmarkierte Zahl und markiere ihre größeren Vielfachen als zusammengesetzt. Gib die Ergebnisse in aufsteigender Reihenfolge aus.

Implementiere sieve_primes(limit).

Eingabe

limit: Die größte Zahl, die enthalten sein darf.

Ausgabe

Gib die Primzahlen in aufsteigender Reihenfolge zurück oder eine leere Liste, falls keine existieren.

Einschränkungen

0 ≤ limit ≤ 100.000. Die obere Grenze ist inklusive. Die Ausgabetests prüfen die Ergebnisse, nicht den genauen verwendeten Algorithmus.

Beispiele

Beispiel 1
Eingabe:
limit = 12

Erwartete Ausgabe:
expected = [2, 3, 5, 7, 11]
Eingabe:
long long limit = 12;

Erwartete Ausgabe:
std::vector<long long> expected = {2, 3, 5, 7, 11};
Eingabe:
long limit = 12;

Erwartete Ausgabe:
long[] expected = new long[] {2, 3, 5, 7, 11};

Erläuterung

Markiere die Vielfachen von 2 und 3 als zusammengesetzt. Die verbleibenden Werte bis 12 sind 2, 3, 5, 7 und 11.

Beispiel 2
Eingabe:
limit = 1

Erwartete Ausgabe:
expected = []
Eingabe:
long long limit = 1;

Erwartete Ausgabe:
std::vector<long long> expected = {};
Eingabe:
long limit = 1;

Erwartete Ausgabe:
long[] expected = new long[] {};

Erläuterung

Primzahlen beginnen bei 2, darüber hinaus liegt dieser Grenzwert.

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.