Esimerkki sen tarkistamiseksi, onko kokonaisluku alkuluku vai ei, käytetäänkö silmukalle ja jos… muuta lausetta. Jos numero ei ole alkuluku, se selitetään lähdössä, miksi se ei ole alkuluku.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Python-ohjelmointiaiheista:
- Python jos… muuten Lausunto
- Python for Loop
- Python tauko ja jatka
Positiivinen kokonaisluku, joka on suurempi kuin 1 ja jolla ei ole muita tekijöitä kuin 1 ja lukua itse kutsutaan alkuluvuksi. 2, 3, 5, 7 jne. Ovat alkulukuja, koska niillä ei ole muita tekijöitä. Mutta 6 ei ole prime (se on komposiitti), koska 2 x 3 = 6
.
Lähdekoodi
# 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")
Tuotos
407 ei ole alkuluku 11 kertaa 37 on 407
Tässä ohjelmassa muuttuja num tarkistetaan, onko se ensisijainen vai ei. Luvut, jotka ovat pienempiä tai yhtä suuria kuin 1, eivät ole alkulukuja. Siksi jatkamme vain, jos numero on suurempi kuin 1.
Tarkistamme, onko numero jaettavissa tarkalleen millä tahansa numerolla 2: sta numeroon 1. Jos löydämme tekijän tältä alueelta, luku ei ole alkuluku. Muuten numero on ensisijainen.
Voimme pienentää lukualueita, joissa etsimme tekijöitä.
Yllä olevassa ohjelmassa hakualueemme on 2 - num - 1
.
Olisimme voineet käyttää aluetta range(2,num//2)
tai range(2,math.floor(math.sqrt(num)))
. Jälkimmäinen alue perustuu siihen tosiasiaan, että yhdistelmäluvulla on oltava pienempi kerroin kuin tämän luvun neliöjuuri. Muussa tapauksessa luku on ensisijainen.
Voit muuttaa muuttujan num arvoa yllä olevassa lähdekoodissa tarkistaaksesi, onko luku muiden alkulukujen alkuluku vai ei.