Program Python na kontrolu prvočísla

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.

Zaujímavé články...