Problem
Original anzeigen (Englisch)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
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.
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.