Eksempel for at kontrollere, om et heltal er et primtal eller ikke bruger til loop, og hvis … ellers udsagn. Hvis tallet ikke er primtal, forklares det i output, hvorfor det ikke er et primtal.
For at forstå dette eksempel skal du have kendskab til følgende Python-programmeringsemner:
- Python hvis … ellers Erklæring
- Python for Loop
- Python bryder og fortsætter
Et positivt heltal større end 1, som ikke har andre faktorer undtagen 1, og selve tallet kaldes et primtal. 2, 3, 5, 7 osv. Er primtal, da de ikke har andre faktorer. Men 6 er ikke prime (det er sammensat), da 2 x 3 = 6
,.
Kildekode
# 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")
Produktion
407 er ikke et primtal 11 gange 37 er 407
I dette program kontrolleres variabel num, om den er primær eller ej. Tal mindre end eller lig med 1 er ikke primtal. Derfor fortsætter vi kun, hvis antallet er større end 1.
Vi kontrollerer, om num er nøjagtigt deleligt med et tal fra 2 til num - 1. Hvis vi finder en faktor i dette interval, er tallet ikke prime. Ellers er tallet primt.
Vi kan mindske rækkevidden af tal, hvor vi ser efter faktorer.
I ovenstående program er vores søgeområde fra 2 til num - 1
.
Vi kunne have brugt rækkevidden, range(2,num//2)
eller range(2,math.floor(math.sqrt(num)))
. Sidstnævnte interval er baseret på det faktum, at et sammensat tal skal have en faktor mindre end kvadratroden af dette tal. Ellers er tallet primt.
Du kan ændre værdien af variablen num i ovenstående kildekode for at kontrollere, om et tal er prime eller ikke for andre heltal.