Vzhledem k kladnému celému číslu N je úkolem napsat program v Pythonu, který zkontroluje, zda číslo je primární nebo ne v Krajta .
katrina kaif
Příklady:
Input: n = 11 Output: True Input: n = 1 Output: False Explanation: A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself. The first few prime numbers are {2, 3, 5, 7, 11, ….}.>Program Python pro kontrolu prvočísla
Cílem řešení tohoto problému je iterovat všechna čísla od 2 do (N/2) pomocí a pro smyčku a pro každé číslo zkontrolujte, zda dělí N. Pokud najdeme nějaké číslo, které se dělí, vrátíme false. Pokud jsme nenašli žádné číslo mezi 2 a N/2, které dělí N, znamená to, že N je prvočíslo a vrátíme True.
Python3 num = 11 # If given number is greater than 1 if num>1: # Opakujte od 2 do n // 2 pro i v rozsahu(2, (num//2)+1): # Pokud je číslo dělitelné libovolným číslem mezi # 2 a n / 2, není prvočíslo, jestliže ( num % i) == 0: print(num, 'není prvočíslo') break else: print(num, 'je prvočíslo') else: print(num, 'není prvočíslo číslo')>
Výstup
11 is a prime number>
Časová složitost : O(n)
Pomocný prostor: O(1)
Najděte prvočísla pomocí proměnné flag
Místo kontroly do n můžeme zkontrolovat do √n, protože větší faktor n musí být násobkem menšího faktoru, který již byl zkontrolován. Nyní se podívejme na kód pro první optimalizační metodu (tj. kontrola do √n)
Python3
from math import sqrt # n is the number to be check whether it is prime or not n = 1 # this flag maintains status whether the n is prime or not prime_flag = 0 if(n>1): pro i v rozsahu(2, int(sqrt(n)) + 1): if (n % i == 0): prime_flag = 1 break if (prime_flag == 0): print('True' ) else: print('False') else: print('False')> Výstup
False>
Časová složitost :O(sqrt(n))
Pomocný prostor: O(1)
Zkontrolujte prvočísla pomocí rekurze
Můžeme také najít číslo prvočíslo nebo nepoužívat rekurze . Můžeme použít přesnou logiku uvedenou v metodě 2, ale rekurzivním způsobem.
Python3 from math import sqrt def Prime(number,itr): #prime function to check given number prime or not if itr == 1: #base condition return True if number % itr == 0: #if given number divided by itr or not return False if Prime(number,itr-1) == False: #Recursive function Call return False return True num = 13 itr = int(sqrt(num)+1) print(Prime(num,itr))>
Výstup
True>
Časová složitost: O(sqrt(n))
Pomocný prostor :O(sqrt(n))
Zkontrolujte metodu Prime Trial Division
Python3 def is_prime_trial_division(n): # Check if the number is less than # or equal to 1, return False if it is if n <= 1: return False # Loop through all numbers from 2 to # the square root of n (rounded down to the nearest integer) for i in range(2, int(n**0.5)+1): # If n is divisible by any of these numbers, return False if n % i == 0: return False # If n is not divisible by any of these numbers, return True return True # Test the function with n = 11 print(is_prime_trial_division(11))>
Výstup
True>
Časová složitost: O(sqrt(n))
Pomocný prostor: O(sqrt(n))
Doporučené Artilce – Analýza různých metod k nalezení prvočísla v Pythonu
Pythonský program pro kontrolu prvočísla Použití cyklu while ke kontrole dělitelnosti
Inicializujte proměnnou i na 2, zatímco i na druhou je menší nebo rovno n, zkontrolujte, zda je n dělitelné i. Pokud je n dělitelné i, vrátí False. Jinak zvyšte i o 1. Pokud smyčka skončí bez nalezení dělitele, vraťte True.
nový řádek pythonPython3
import math def is_prime(n): if n < 2: return False i = 2 while i*i <= n: if n % i == 0: return False i += 1 return True print(is_prime(11)) # True print(is_prime(1)) # False>
Výstup
True False>
Časová složitost: O(sqrt(n))
Pomocný prostor: O(1)
Program Python pro kontrolu prvočísel pomocí modulu Math
Kód implementuje základní přístup ke kontrole, zda je číslo prvočíslo nebo ne, procházením všech čísel od 2 do sqrt(n)+1 a kontrolou, zda je n dělitelné kterýmkoli z těchto čísel.
Python3 import math def is_prime(n): if n <= 1: return False for i in range(2, int(math.sqrt(n)) + 1): if n % i == 0: return False return True n = 11 print(is_prime(n))>
Výstup
True>
Časová složitost: O(sqrt(n))
Časová složitost kódu je O(sqrt(n)), protože procházíme všechna čísla v rozsahu 2 až sqrt(n)+1, abychom zkontrolovali, zda je n dělitelné některým z nich.
Pomocný prostor: O(1)
Prostorová složitost kódu je O(1), protože k uložení vstupního čísla n a proměnných smyčky používáme pouze konstantní množství paměti.
Program Python pro kontrolu prvočísel pomocí metody sympy.isprime().
V modulu sympy můžeme pomocí funkce sympy.isprime() otestovat, zda je dané číslo n prvočíslo či nikoliv. Pro n <264odpověď je definitivní; větší hodnoty n mají malou pravděpodobnost, že jsou ve skutečnosti pseudoprvočísly.
Python3Pozn.: Záporná čísla (např. -13) se nepovažují za prvočíslo.
sql klauzule
# Python program to check prime number # using sympy.isprime() method # importing sympy module from sympy import * # calling isprime function on different numbers geek1 = isprime(30) geek2 = isprime(13) geek3 = isprime(2) print(geek1) # check for 30 is prime or not print(geek2) # check for 13 is prime or not print(geek3) # check for 2 is prime or not # This code is contributed by Susobhan Akhuli>
Výstup
False True True>
Časová náročnost: O(sqrt(n)), kde n je vstupní číslo.
Pomocný prostor: O(1)