Priemgetallen — natuurlijke getallen die enkel deelbaar zijn door 1 en zichzelf — zijn belangrijk in onze huidige wereld van beveiliging. Er bestaan programma’s om grote priemgetallen te zoeken. In augustus 2019 was het grootst gekende priemgetal gelijk aan \(2^{82589933} - 1\), een getal van bijna 25 miljoen cijfers. De zoektocht naar priemgetallen startte al in de oudheid bij de Grieken. De geleerde Eratosthenes vond al voor het begin van onze jaartelling een methode om priemgetallen te vinden. Vandaag kennen we deze methode als de zeef van Eratosthenes.
Schrijf een programma dat via deze methode de priemgetallen vindt die kleiner zijn dan 1000.
Het idee is om systematisch alle veelvouden weg te strepen:
true); 0 en 1 zijn geen priemgetallen
(false).false te
zetten: een veelvoud van 2 kan immers geen priemgetal zijn.true staat (3) en streep opnieuw al
zijn veelvouden weg. Herhaal dit.true, zijn precies de priemgetallen.Een bool-array maak je net zoals een int-array, maar dan met het type
bool:bool[] isPriem = new bool[1000];. Elk element is dantrueoffalse. De index van het vakje stelt hier het getal zelf voor, zodat je rechtstreeksisPriem[getal]kan gebruiken.
Toon alle gevonden priemgetallen kleiner dan 1000 op één regel, van elkaar gescheiden door een spatie en in oplopende volgorde.
Uitvoer (begin en einde):
2 3 5 7 11 13 17 19 23 ... 977 983 991 997
De eerste priemgetallen zijn dus 2 3 5 7 11 13 ... en het grootste priemgetal
kleiner dan 1000 is 997.