Genera numeri primi in Python

Genera numeri primi in Python
Imparerai come generare e ottenere numeri primi usando Python in questo tutorial identificando tutti i numeri primi in un intervallo specificato di valori. I numeri primi sono quelli che hanno solo il numero stesso e il numero 1 come fattori. In altre parole, solo il numero 1 e il numero stesso possono dividere un numero primo. Non sono completamente divisibili con nessun altro numero. Lavorare con i numeri primi è un'abilità che viene spesso utilizzata in campi come la sicurezza informatica.

Dopo aver finito questo tutorial, saprai:

  • Quali sono i numeri primi?
  • Diversi metodi Python per ottenere numeri primi.
  • Ottimizzazione dell'algoritmo di Python per ottenere numeri primi.
  • Usando Python, trova tutti i numeri primi all'interno di una gamma di valori specificati.

Quali sono i primi numeri?

In Python, i numeri primi sono numeri di tipo int maggiore di 1 e non hanno altri fattori ma se stessi e 1. Un numero primo è uno come 5, mentre un numero non primo è quattro (poiché 2 x 2 è uguale a 4). I numeri 2, 11, 23 e 43 sono tra i pochi numeri primi.

Come i numeri primi possono essere generati in Python?

Una serie di numeri primi può apparire come 2, 3, 5, 7, 9, 11, 13 e così via. La logica può essere implementata in Python per ricreare questa sequenza di numeri primi e determinare se un determinato numero è primo o meno. Usando librerie Python, loop, condizioni e la funzione Lambda sono alcune tecniche per svolgere questo compito.

Esistono vari approcci per l'implementazione di numeri primi in Python; Ne abbiamo spiegato alcuni negli esempi seguenti.

Esempio n. 1: generazione di sequenza di numeri primi usando la funzione Lambda

I numeri primi possono essere generati usando la funzione Lambda, come si può vedere nell'esempio seguente.

Codice:

def primo_seq (num):
per i in gamma (2, num):
se primo (i) == vero:
stampa (i, end = "")
altro:
passaggio
num = int (input ("immettere l'intervallo:"))
Prime = Lambda Num: All (Num%x != 0 per x nell'intervallo (2, int (num **.5) +1))
Prime_seq (num)

Produzione:

Inseriamo il valore della chiave 30 in modo che la funzione abbia stampato tutti i numeri primi da 2 a 30. Utilizzando una funzione Lambda che è una funzione orfana o una funzione anonima viene utilizzata nel programma sopra per determinare l'intervallo di numeri primi. Abbiamo progettato il programma in modo tale che quando eseguiamo lo script, il programma chiederà all'utente di inserire un valore chiave. Quindi, il programma genererà la sequenza o la serie di numeri primi a partire da 2 fino al valore chiave specificato.

Il flusso del programma:

L'utente inserisce l'intervallo di input e il metodo di input Python viene utilizzato per prendere quell'input. L'input viene esplicitamente trasformato in Tipo di dati numerici int. Nel processo di invocare la funzione, il cast int viene fornito come argomento. La funzione Lambda è invocata dalla funzione definita. Di conseguenza, la funzione Lambda viene invocata per ogni numero o valore intero da 2 a un valore chiave specificato e viene eseguito un controllo primo. Per fare questo controllo principale, il numero logico%2! = 0 viene utilizzato.

Esempio n. 2: generazione di numeri primi usando per loop

Abbiamo visto come ottenere una sequenza di numeri primi usando la funzione lambda. Ora useremo il loop e una condizione per generare una sequenza di numeri primi.

Codice:

num = int (input ("Input l'intervallo:"))
per i in gamma (2, num):
per x in gamma (2, i):
if (i%x == 0):
rottura
altro:
Stampa (i)

Produzione:

Il nostro programma ha ottenuto una serie di numeri primi da 2 a 13 con successo quando abbiamo inserito il valore 15. Questo programma utilizza per loop e condizioni per ottenere una serie di numeri primi. Esegue in modo tale che, dopo che l'utente inserisca un numero intero specifico, saranno generati e stampati tutti i numeri primi tra l'intervallo a partire da 2 al numero di input specificato.

Il flusso del programma:

L'utente inserisce l'intervallo di input e la funzione input () prende quell'input. L'input specificato viene quindi esplicitamente trasformato in un tipo int. In questo esempio, due numeri interi sono determinati tramite loop nidificato; Il primo ciclo si assicura di ottenere tutti i numeri o i numeri interi che si trovano all'interno dell'intervallo chiave. La verifica del numero principale è determinata dal secondo per loop. L'intero gestito viene visualizzato/stampato sulla console se il risultato del processo per ciascun valore intero denominato non è 0. Ogni numero nell'intervallo specificato da due a valore di input è sottoposto a un ciclo che ripete questo processo.

Esempio n. 3: generazione di numeri primi usando i loop while

Ora, useremo durante gli anelli per ottenere numeri primi in un intervallo specificato.

Codice:

intervallo = int (input ('immettere l'intervallo:'))
Num = 1
mentre (num <= range):
conta = 0
x = 2
mentre (x <= num//2):
if (num % x == 0):
COUNT = COUNT + 1
rottura
x = x + 1
if (count == 0 e num!= 1):
print (" %d" %num, end = ")
num = num + 1

Produzione:

Abbiamo specificato il valore di input di 45 e il programma ha estratto tutti i numeri primi fino al numero "45". Nel codice sopra, i loop e le condizioni while vengono utilizzati per determinare l'intervallo di numeri primi. Una volta che l'utente entra in un numero intero, vengono generati e visualizzati tutti i numeri primi che scendono tra l'intervallo di 2 e l'ingresso specificato.

Il flusso del programma:

L'utente inserisce l'intervallo di input e il metodo di input Python viene utilizzato per prendere quell'input. L'input è stato quindi lanciato in DataType Int. Qui, il controllo Prime viene eseguito utilizzando un ciclo while. Il controllo del loop si basa su un controllo condizionale e il processo di ciclismo continuerà fino a quando il valore immesso non supera la variabile di controllo del loop. La variabile per il controllo del ciclo viene inizializzata con 1 e aumenta di 1 dopo ogni loop. Ancora una volta, se il risultato del processo per ciascun valore intero denominato non è zero, l'intero gestito verrà stampato. Per ciascun valore intero da 1 al valore chiave specificato, questo processo verrà ripetuto ed eseguito.

Esempio n. 4: generazione di numeri primi usando la libreria Sympy in Python

Usando il Sympy.Funzione primirange () nella libreria Sympy, possiamo ottenere un elenco contenente numeri primi all'interno di un intervallo specificato usando questa funzione.

Codice:

Importa Sympy
l_limit = int (input ("Limite inferiore:"))
h_limit = int (input ("limite superiore:"))
Elenco Prime_Numbers = (Sympy.PrimeRange (l_limit, h_limit+1))
Print ("Numeri primi:", prime_numbers)

Produzione:

Questo programma ha utilizzato una libreria predefinita per trovare la gamma di numeri primi. In questo esempio, il modulo Sympy viene utilizzato per eseguire il controllo Prime e la funzione ha generato un elenco con numeri primi che si trovano entro i limiti più bassi e più alti, specificati da noi.

Il flusso del programma:

L'utente inserisce l'intervallo inferiore e superiore. L'input dell'utente viene quindi elaborato dalla funzione di input Python. L'input che è stato ottenuto è lanciato in un tipo int. Il metodo primirange () del modulo Sympy prende i valori di intervallo più e superiori come input. L'output della funzione viene stampata dopo essere stata lanciata in una variabile di elenco.

Verificare numeri primi

Abbiamo visto approcci diversi per generare numeri primi. Ora, dovresti anche essere in grado di verificare se un numero è primo o no. Per questo, puoi controllare il programma indicato di seguito. L'approccio più semplice e basilare è quello di iterare attraverso l'intervallo di numeri interi positivi da due al numero di input e verificare se l'intervallo e il modulo del numero sono uguali a zero. Se ciò accade, il numero non è un numero primo perché ha un divisore diverso da "uno" e il numero stesso.

Codice:

def checkprime (n):
Se n> 1:
per i nell'intervallo (2, n):
Se n % i == 0:
restituire false
restituire vero
restituire false
Stampa (CheckPrime (13))
Stampa (CheckPrime (12))
Produzione:

Per il numero 13, la funzione è restituita vera e falsa per il numero 12. Abbiamo definito la funzione "CheckPrime", che accetta solo un singolo numero intero come argomento perché i numeri primi devono essere maggiori di 1, se il numero di input non è maggiore di uno, la funzione restituisce falso. Quindi si itera nell'intervallo da due al numero specificato. La funzione restituirà false se il modulo (%) del numero immesso "num" e l'iterazione "i" è uguale a zero. In caso contrario, il metodo restituisce vero.

Conclusione

In questo tutorial, abbiamo visto per la prima volta l'introduzione ai numeri primi e poi abbiamo discusso di come possiamo generare numeri casuali in Python. Abbiamo usato approcci diversi per generare una serie/gamma di numeri primi. Innanzitutto, abbiamo usato la funzione Lambda, in secondo luogo, abbiamo usato per loop e condizioni, quindi abbiamo usato il ciclo while e, infine, abbiamo usato il metodo Primerge () del modulo Sympy per generare numeri casuali all'interno di un intervallo specificato. Abbiamo anche implementato un esempio per verificare se un numero è primo o no.