Genera un numero primo casuale in Python

Rayven Esplanada 10 ottobre 2023
Genera un numero primo casuale in Python

Questo tutorial mostra i modi per generare e visualizzare in output qualsiasi numero primo casuale in Python.

I numeri primi sono costanti molto utili utilizzate nella programmazione, specialmente nella crittografia. L’uso di numeri primi è vitale per la crittografia e l’hashing in quanto possono essere utilizzati per crittografare e hash dati sensibili e impedire che vengano decrittografati a casaccio.

Crea una funzione per generare un numero primo casuale con un determinato intervallo

I numeri primi hanno solo 2 fattori (i fattori sono numeri che possono dividere un altro numero e dare come risultato un numero intero). I numeri primi sono divisibili solo per 1 e se stessi.

È tecnicamente impossibile generare un numero primo casuale compreso tra 0 e infinito poiché ciò richiederà molta potenza di elaborazione per mantenerlo fino a numeri enormi.

Detto questo, un intervallo di numeri dovrebbe essere incluso come parametri per raccogliere i numeri primi all’interno di un intervallo prestabilito.

La prima cosa da fare è creare una funzione per raccogliere tutti i numeri primi all’interno dell’intervallo dato in una lista. Per questa funzione, loop tutti i numeri all’interno dell’intervallo e controlla se gli unici numeri divisibili sono 1 e se stesso.

def primesInRange(x, y):
    prime_list = []
    for n in range(x, y):
        isPrime = True

        for num in range(2, n):
            if n % num == 0:
                isPrime = False

        if isPrime:
            prime_list.append(n)

    return prime_list


print(primesInRange(100, 250))

L’output stamperà tutti i numeri primi dall’intervallo dato da 100 a 250.

Produzione:

[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241]

Il passo successivo è generare un numero casuale dal dato intervallo di numeri primi restituiti dalla funzione primesInRange().

Sotto il modulo Python random, ha una funzione chiamata choice() che sceglie un elemento casuale da un dato iterabile o sequenza.

Data la funzione primesInRange() implementata sopra, cattura il ritorno con una variabile di lista e scegli un numero primo casuale all’interno della lista usando random.choice(). Non dimenticare di importare il modulo random prima di usare la funzione choice().

import random

prime_list = primesInRange(100, 250)
randomPrime = random.choice(prime_list)

print("Generated random prime number: ", randomPrime)

Esempio di output randomizzato:

Generated random prime number:  191

Questo è il codice sorgente completo di questa soluzione:

import random


def primesInRange(x, y):
    prime_list = []
    for n in range(x, y):
        isPrime = True

        for num in range(2, n):
            if n % num == 0:
                isPrime = False

        if isPrime:
            prime_list.append(n)
    return prime_list


prime_list = primesInRange(100, 250)
randomPrime = random.choice(prime_list)

print("Generated random prime number: ", randomPrime)
Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Articolo correlato - Python Number