Je hebt ondertussen veel verschillende dingen geleerd over programmeren in Python, zoals variabelen, datatypes, operatoren, de print functie, for-loops, en hoe je een subtotaal kan bijhouden. In deze oefening ga je al je kennis combineren om een algoritme te maken. Dat wil zeggen dat je moet plannen hoe de functie stap voor stap moet werken, en het daarna pas kan implementeren.



Achtergrond

Een priemgetal is een positief geheel getal dat deelbaar is door exact twee verschillende getallen: 1 en zichzelf. Het laagste (en enige even) priemgetal is 2. De eerste 10 priemgetallen zijn: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 .

In de wiskunde zijn priemgetallen heel belangrijk. Ze worden ook wel de “bouwstenen” van de getallen genoemd, omdat elk positief geheel getal groter dan 1 kan worden geschreven als een product van priemgetallen. Bijvoorbeeld, 28 kan worden geschreven als 2 * 2 * 7, en 30 kan worden geschreven als 2 * 3 * 5. Priemgetallen spelen ook een belangrijke rol in de cryptografie, wat de wetenschap is van het veilig communiceren. Veel moderne encryptie-algoritmen zijn gebaseerd op de eigenschappen van priemgetallen.



Opdracht

Maak een functie die één geheel getal (integer) als invoer neemt. De functie bepaalt of het ingevoerde getal een priemgetal is, en geeft True terug als het een priemgetal is, en False als het dat niet is.

Er is echter een grote uitdaging toegevoegd: de tijdslimiet is flink verlaagd, dus je moet je code efficiënt maken zodat het geen time-out krijgt. Dit vraagt zowel om wiskundig inzicht als om programmeervaardigheden.

input-output verwachtingen
Invoer Verwachte returnwaarde Uitleg
True 2 is deelbaar door 2 getallen: 1 en zichzelf (2).
True 3 is deelbaar door 2 getallen: 1 en zichzelf (3).
False 4 is deelbaar door 3 getallen: 1, 2, en 4.
False 15 is deelbaar door 4 getallen: 1, 3, 5, en 15.
False 1 is enkel deelbaar door 1 getal: 1.
True 113 is deelbaar door 2 getallen: 1 en zichzelf (113).