Voorbeeld om te controleren of een geheel getal een priemgetal is of niet met de instructie for lus en if… else. Als het getal geen priemgetal is, wordt in de uitvoer uitgelegd waarom het geen priemgetal is.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende programmeeronderwerpen in Python:
- Python if… else-instructie
- Python voor Loop
- Python breken en doorgaan
Een positief geheel getal groter dan 1 dat geen andere factoren heeft dan 1 en het getal zelf wordt een priemgetal genoemd. 2, 3, 5, 7 enz. Zijn priemgetallen omdat ze geen andere factoren hebben. Maar 6 is geen priemgetal (het is samengesteld) omdat 2 x 3 = 6
,.
Broncode
# Program to check if a number is prime or not num = 407 # To take input from the user #num = int(input("Enter a number: ")) # prime numbers are greater than 1 if num> 1: # check for factors for i in range(2,num): if (num % i) == 0: print(num,"is not a prime number") print(i,"times",num//i,"is",num) break else: print(num,"is a prime number") # if input number is less than # or equal to 1, it is not prime else: print(num,"is not a prime number")
Uitvoer
407 is geen priemgetal 11 keer 37 is 407
In dit programma wordt variabele num gecontroleerd of het een priemgetal is of niet. Getallen kleiner dan of gelijk aan 1 zijn geen priemgetallen. Daarom gaan we alleen verder als het aantal groter is dan 1.
We controleren of num exact deelbaar is door een getal van 2 tot num - 1. Als we een factor in dat bereik vinden, is het getal geen priemgetal. Anders is het nummer een priemgetal.
We kunnen het bereik van getallen verkleinen wanneer we naar factoren zoeken.
In het bovenstaande programma is ons zoekbereik van 2 tot num - 1
.
We hadden het bereik kunnen gebruiken, range(2,num//2)
of range(2,math.floor(math.sqrt(num)))
. Dit laatste bereik is gebaseerd op het feit dat een samengesteld getal een factor kleiner moet zijn dan de vierkantswortel van dat getal. Anders is het nummer een priemgetal.
U kunt de waarde van variabele num in de bovenstaande broncode wijzigen om te controleren of een getal een priemgetal is of niet voor andere gehele getallen.