Príklad na kontrolu, či je celé číslo prvočíslo alebo či sa nepoužíva pre cyklus, a ak … else. Ak číslo nie je prvočíslo, na výstupe je vysvetlené, prečo nejde o prvočíslo.
Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Python:
- Vyhlásenie Python if … else
- Python pre Loop
- Python sa zlomí a pokračuje
Kladné celé číslo väčšie ako 1, ktoré nemá iné faktory okrem 1 a samotné číslo sa nazýva prvočíslo. 2, 3, 5, 7 atď. Sú prvočísla, pretože nemajú žiadne ďalšie faktory. Ale 6 nie je prvočíslo (je kompozitný), lebo 2 x 3 = 6
.
Zdrojový kód
# 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")
Výkon
407 nie je prvočíslo 11 krát 37 je 407
V tomto programe sa kontroluje premenná num, či je alebo nie je prvočíslo. Čísla menšie alebo rovné 1 nie sú prvočíslami. Preto pokračujeme, iba ak je počet väčší ako 1.
Skontrolujeme, či je num presne deliteľné akýmkoľvek číslom od 2 do num - 1. Ak v tomto rozsahu nájdeme faktor, číslo nie je prvočíslo. Inak je číslo prvočíslo.
Ak hľadáme faktory, môžeme rozsah čísel zmenšiť.
Vo vyššie uvedenom programe je náš rozsah vyhľadávania od 2 do num - 1
.
Mohli sme použiť dolet, range(2,num//2)
príp range(2,math.floor(math.sqrt(num)))
. Posledný rozsah je založený na skutočnosti, že zložené číslo musí mať faktor menší ako druhá odmocnina tohto čísla. V opačnom prípade je číslo prvočíslo.
Vo vyššie uvedenom zdrojovom kóde môžete zmeniť hodnotu premennej num a skontrolovať, či je číslo prvočíslo pre iné celé čísla.