logo

Python programma primārā numura pārbaudei

Dots pozitīvs vesels skaitlis N, Uzdevums ir uzrakstīt Python programmu, lai pārbaudītu, vai skaitlis ir Prime vai nav iekšā Python .

apgriežot virkni java

Piemēri:

  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, ….}.>

Python programma primārā numura pārbaudei

Šīs problēmas risināšanas ideja ir atkārtot visus skaitļus, sākot no 2 līdz (N/2), izmantojot cilpai un katram skaitlim pārbaudiet, vai tas dala N. Ja atrodam kādu skaitli, kas dala, mēs atgriezīsim false. Ja mēs neatradām nevienu skaitli starp 2 un N/2, kas dala N, tas nozīmē, ka N ir galvenais un mēs atgriezīsim True.



Python3
num = 11 # If given number is greater than 1 if num>1: # Atkārtojiet no 2 līdz n // 2 i diapazonā (2, (num//2)+1): # Ja skaitlis dalās ar jebkuru skaitli starp # 2 un n / 2, tas nav pirmskaitlis, ja ( num % i) == 0: print(num, 'nav pirmskaitlis') break else: print(num, 'ir pirmskaitlis') else: print(num, 'nav pirmskaitlis numurs')>>  
Izvade
11 is a prime number>

Laika sarežģītība : O(n)
Palīgtelpa: O(1)

Atrodiet galvenos skaitļus ar karoga mainīgo

Tā vietā, lai pārbaudītu līdz n, mēs varam pārbaudīt līdz √n, jo lielākam n koeficientam ir jābūt mazāka jau pārbaudīta faktora daudzkārtnim. Tagad apskatīsim pirmās optimizācijas metodes kodu (t.i., pārbaudiet līdz √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): i diapazonā (2, int(sqrt(n)) + 1): if (n % i == 0): galvenais_karogs = 1 pārtraukums if (prime_flag == 0): print('True' ) else: print('False') else: print('False')>

Izvade Laika sarežģītība :O(sqrt(n))
Palīgtelpa: O(1)

Pārbaudiet sākuma skaitļus, izmantojot rekursiju

Mēs varam arī atrast skaitļa pirmskaitli vai neizmantošanu rekursija . Mēs varam izmantot precīzu loģiku, kas parādīta 2. metodē, bet rekursīvā veidā.

java 8
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))>

Izvade
True>

Laika sarežģītība: O(sqrt(n))
Palīgtelpa :O(sqrt(n))

Pārbaudiet primārās izmēģinājuma sadalīšanas metodi

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))>

Izvade
True>

Laika sarežģītība: O(sqrt(n))
Palīgtelpa: O(sqrt(n))

Ieteicamais raksts - Dažādu metožu analīze primārā skaitļa atrašanai Python

Python programma pirmskaitļa pārbaudei Izmantojot while cilpu, lai pārbaudītu dalāmību

Mainīgo i inicializējiet ar 2, kamēr i kvadrātā ir mazāks vai vienāds ar n, pārbaudiet, vai n dalās ar i. Ja n dalās ar i, atgriež False. Pretējā gadījumā palieliniet i par 1. Ja cilpa beidzas, neatrodot dalītāju, atgriež True.

bkoks un b koks
Python3
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>

Izvade
True False>

Laika sarežģītība: O(sqrt(n))
Palīgtelpa: O(1)

Python programma, lai pārbaudītu galveno numuru, izmantojot matemātikas moduli

Kods ievieš pamata pieeju, lai pārbaudītu, vai skaitlis ir vai nav, šķērsojot visus skaitļus no 2 līdz sqrt(n)+1 un pārbaudot, vai n dalās ar kādu no šiem skaitļiem.

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))>

Izvade
True>

Laika sarežģītība: O(sqrt(n))
Koda laika sarežģītība ir O(sqrt(n)), jo mēs šķērsojam visus skaitļus diapazonā no 2 līdz sqrt(n)+1, lai pārbaudītu, vai n dalās ar kādu no tiem.

tabula reaģē

Palīgtelpa: O(1)
Koda kosmosa sarežģītība ir O(1), jo mēs izmantojam tikai nemainīgu atmiņas apjomu, lai saglabātu ievades numuru n un cilpas mainīgos.

Python programma pirmskaitļa pārbaudei, izmantojot metodi sympy.isprime().

Sympy modulī mēs varam pārbaudīt, vai dotais skaitlis n ir galvenais vai nav, izmantojot funkciju sympy.isprime(). Par n <264atbilde ir galīga; lielākām n vērtībām ir maza varbūtība, ka tās patiešām ir pseidopirmās.

N.B.: Negatīvie skaitļi (piemēram, -13) netiek uzskatīti par pirmskaitļiem.

Python3
# 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>

Izvade

False True True>

Laika sarežģītība: O(sqrt(n)), kur n ir ievades skaitlis.
Palīgtelpa: O(1)