Een priemgetal is een natuurlijk getal groter dan 1, dat slechts door 1 en zichzelf deelbaar is. In deze opgave schrijven we enkele functies omtrent priemgetallen.
Definieer als eerste een functie isPriemgetal
, die voor een gegeven geheel getal teruggeeft of het een priemgetal is of niet. Je hoeft hierbij geen rekening te houden met negatieve getallen.
*Main> isPriemgetal 2
True
*Main> isPriemgetal 5
True
*Main> isPriemgetal 6
False
Schrijf vervolgens een functie allePriemgetallen
, die de lijst van alle priemgetallen teruggeeft. Maak hiervoor gebruik van isPriemgetal
en list comprehensions. Merk op dat deze lijst oneindig is1.
*Main> allePriemgetallen !! 0
2
*Main> allePriemgetallen !! 1
3
*Main> allePriemgetallen !! 2
5
*Main> allePriemgetallen !! 1000
7927
Tenslotte schrijf je de functie geefPriemgetallen
. geefPriemgetallen
verwacht een geheel (natuurlijk) getal \(n\) als input en geeft een lijst van de \(n\) kleinste priemgetallen terug.
*Main> geefPriemgetallen 10
[2,3,5,7,11,13,17,19,23,29]
*Main> geefPriemgetallen 15
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47]
Vergeet geen type-annotaties toe te voegen!