Priemgetallen zijn fascinerende wiskundige entiteiten die wiskundigen al eeuwenlang intrigeren. Een priemgetal is een natuurlijk getal groter dan 1 dat alleen deelbaar is door 1 en zichzelf, zonder andere factoren. Deze getallen bezitten een unieke kwaliteit, waardoor ze onmisbaar zijn op verschillende gebieden, zoals cryptografie, informatica en getaltheorie. Ze hebben een mystiek die voortkomt uit hun onvoorspelbaarheid en schijnbare willekeur, maar toch volgen ze precieze patronen en vertonen ze buitengewone eigenschappen. In deze blog verkennen we priemgetallen en verdiepen we ons in de implementatie van een priemgetallenprogramma in Python. Aan het einde zul je een goed begrip hebben van priemgetallen en het vermogen om ze te identificeren met behulp van de kracht van programmeren. Laten we aan deze wiskundige reis beginnen en de geheimen van priemgetallen ontsluiten met Python!
Wat is een priemgetal?
Priemgetallen zijn een subset van natuurlijke getallen waarvan de factoren slechts 1 zijn en het getal zelf. Waarom maken we ons zorgen over priemgetallen en het verkrijgen van priemgetallen? Waar kunnen ze eventueel gebruikt worden? In dit artikel zullen we het hele concept van priemgetallen begrijpen. Laten we beginnen.
De factoren voor een bepaald getal zijn die getallen die resulteren in een nulrest bij deling. Deze zijn van groot belang op het gebied van cryptografie om publieke en private sleutels mogelijk te maken. In wezen is het internet tegenwoordig stabiel vanwege cryptografie, en deze tak is sterk afhankelijk van priemgetallen.
Is 1 een priemgetal?
Laten we een stapje terug doen en goed letten op de definitie van priemgetallen. Ze worden gedefinieerd als ‘de natuurlijke getallen groter dan 1 die niet kunnen worden gevormd door twee kleinere natuurlijke getallen te vermenigvuldigen’. Een natuurlijk getal dat groter is dan 1, maar geen priemgetal is, staat bekend als een samengesteld getal.
Daarom kunnen we 1 niet opnemen in de lijst met priemgetallen. Alle lijsten met priemgetallen beginnen met 2. Het kleinste priemgetal is dus 2 en niet 1.
Co-priemgetallen
Laten we verder leren. Wat als we twee priemgetallen hebben? Wat is de relatie tussen twee priemgetallen? De grootste gemene deler tussen twee priemgetallen is 1. Daarom resulteert elk paar priemgetallen in co-priemgetallen. Co-priemgetallen zijn het paar getallen waarvan de grootste gemene deler 1 is. We kunnen ook paren van niet-priemgetallen en paren van priemgetallen en niet-priemgetallen hebben. Denk bijvoorbeeld aan het aantal paren-
- (25, 36)
- (48, 65)
- (6,25)
- (3,2)
Controleer of een bepaalde string een palindroom is in Python
Kleinste en grootste priemgetal
Nu we priemgetallen hebben bekeken, wat is het bereik van de priemgetallen? We weten al dat het kleinste priemgetal 2 is.
Wat zou het grootste priemgetal kunnen zijn?
Welnu, dit heeft een aantal interessante weetjes die ermee verband houden. In het jaar 2018 vond Patrick Laroche van de Great Internet Mersenne Prime Search het grootste priemgetal, 282.589.933 − 1, een getal dat 24.862.048 cijfers heeft als het in grondtal 10 wordt geschreven. Dat is een enorm getal.
Laten we ons voorlopig concentreren op het implementeren van verschillende problemen met betrekking tot priemgetallen. Deze probleemstellingen zijn als volgt:
- Erkennen of ze primair zijn of niet
- Het verkrijgen van de reeks priemgetallen tussen een reeks getallen
- Erkennen of ze primair zijn of niet.
Dit kan op twee manieren worden gedaan. Laten we de eerste methode bekijken. Controleren van alle getallen tussen 2 en het getal zelf op factoren. Laten we hetzelfde implementeren. Begin altijd met het volgende algoritme:
Algoritme
- Initialiseer een for-lus, beginnend bij 2 en eindigend bij het nummer
- Controleer of het getal deelbaar is door 2
- Herhaal dit totdat het getal -1 is gecontroleerd
- Als het getal deelbaar is door een van de getallen, is het getal geen priemgetal
- Anders is het een priemgetal
num = int(input("Enter the number: "))
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")
Laten we eens kijken naar de efficiënte oplossing, waarbij we de berekening tot de helft kunnen terugbrengen. We controleren alleen op factoren tot aan de wortel van het getal. Beschouw 36: de factoren zijn 1,2,3,4,6,9,12,18 en 36.
Vierkantswortel van 36 is 6. Tot 6 zijn er vier factoren behalve 1. Daarom is het geen priemgetal.
Beschouw 73. De vierkantswortel is 8,5. We ronden het af op 9. Er zijn geen delers behalve 1 voor 73 tot en met 9. Het is dus een priemgetal.
Voordat we nu ingaan op de details van het Python-programma voor priemgetallen, kun je misschien eerst een gratis opfriscursus volgen over de Grondbeginselen van Python. Deze cursus behandelt alle basis- en geavanceerde concepten van Python-programmeren, zoals Python-datastructuren, variabelen, operators, Flow Control-verklaringen en OOP’s. Het biedt zelfs een certificaat bij voltooiing, wat uw cv zeker een boost kan geven.
Python-programma voor priemgetallen
Laten we de logica in Python implementeren–
Algoritme:
- Initialiseer een for-lus, beginnend bij 2 en eindigend bij de gehele waarde van de bodem van de vierkantswortel van het getal
- Controleer of het getal deelbaar is door 2
- Herhaal dit totdat de vierkantswortel van het getal is gecontroleerd.
- Als het getal deelbaar is door een van de getallen, is het getal geen priemgetal
- Anders is het een priemgetal
import math
def primeCheck(x):
sta = 1
for i in range(2,int(math.sqrt(x))+1): # range(2,sqrt(num))
if(x%i==0):
sta=0
print("Not Prime")
break
else:
continue
if(sta==1):
print("Prime")
return sta
num = int(input("Enter the number: "))
ret = primeCheck(num)
We definiëren een functie primeCheck die invoer inneemt als het nummer waarop moet worden gecontroleerd en de status retourneert. Variabele sta is een variabele die 0 of 1 kan aannemen.
Laten we eens kijken naar het probleem van het herkennen van priemgetallen in een bepaald bereik:
Algoritme:
- Initialiseer een for-lus tussen het onderste en bovenste bereik
- Gebruik de primeCheck-functie om te controleren of het getal een priemgetal is of niet
- Als dit niet het geval is, verbreek dan de lus naar de volgende buitenste lus
- Indien prime, druk het af.
- Voer de for-lus uit totdat de upperRange is bereikt.
l_range = int(input("Enter Lower Range: "))
u_range = int(input("Enter Upper Range: "))
print("Prime numbers between", l_range, "and", u_range, "are:")
for num in range(l_range, u_range + 1):
# all prime numbers are greater than 1
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
In deze tutorial hebben we elk onderwerp met betrekking tot priemgetallen besproken. We hopen dat je het artikel met plezier hebt gelezen. Houd ons in de gaten voor meer artikelen over machine learning en Python!
Leer hoe u de Fibonacci-reeks in Python afdrukt.
Als je op reis gaat naar een carrière in de datawetenschap, gaat er een wereld van grenzeloze mogelijkheden open. Of je nu een ambitieuze datawetenschapper bent of iemand die geïntrigeerd is door de kracht van data, het begrijpen van de belangrijkste factoren die bijdragen aan succes op dit gebied is van cruciaal belang. Het onderstaande pad zal u begeleiden om een bekwame datawetenschapper te worden.