Pavyzdys, norint patikrinti, ar sveikasis skaičius yra pirminis skaičius, ar nenaudojamas kilpai, ir jei… kitas sakinys. Jei skaičius nėra pirminis, išvestyje paaiškinama, kodėl jis nėra pirminis skaičius.
Norėdami suprasti šį pavyzdį, turite žinoti apie šias „Python“ programavimo temas:
- „Python“, jei… kitas pareiškimas
- „Python for Loop“
- Python pertrauka ir tęskite
Teigiamas sveikasis skaičius, didesnis nei 1, neturintis jokių kitų veiksnių, išskyrus 1, ir pats skaičius vadinamas pirminiu skaičiumi. 2, 3, 5, 7 ir kt. Yra pirminiai skaičiai, nes jie neturi jokių kitų veiksnių. Bet 6 nėra pagrindinis (jis yra sudėtinis), nes 2 x 3 = 6
,.
Pirminis kodas
# 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")
Rezultatas
407 nėra pagrindinis skaičius 11 kartų, kai 37 yra 407
Šioje programoje kintamasis skaičius tikrinamas, ar jis yra pagrindinis, ar ne. Skaičiai, mažesni arba lygūs 1, nėra pirminiai skaičiai. Taigi mes tęsime tik tada, jei skaičius yra didesnis nei 1.
Mes patikriname, ar skaičius tiksliai padalijamas iš bet kurio skaičiaus nuo 2 iki skaičiaus 1. Jei radome to diapazono veiksnį, skaičius nėra pirminis. Kitaip skaičius yra pagrindinis.
Galime sumažinti skaičių diapazoną, kur ieškome veiksnių.
Pagal anksčiau pateiktą programą mūsų paieškos diapazonas yra nuo 2 iki num - 1
.
Galėjome naudoti diapazoną range(2,num//2)
arba range(2,math.floor(math.sqrt(num)))
. Pastarasis diapazonas yra pagrįstas tuo, kad sudėtinio skaičiaus koeficientas turi būti mažesnis už kvadratinę šaknį to skaičiaus. Priešingu atveju skaičius yra pagrindinis.
Pirmiau pateiktame šaltinio kode galite pakeisti kintamojo numerio vertę, kad patikrintumėte, ar kitų sveikųjų skaičių skaičius yra pagrindinis.