Esempio per verificare se un intero è un numero primo o meno utilizzando il ciclo for e l'istruzione if… else. Se il numero non è primo, viene spiegato nell'output perché non è un numero primo.
Per comprendere questo esempio, dovresti avere la conoscenza dei seguenti argomenti di programmazione Python:
- Istruzione Python if … else
- Python per Loop
- Python interrompe e continua
Un numero intero positivo maggiore di 1 che non ha altri fattori tranne 1 e il numero stesso è chiamato numero primo. 2, 3, 5, 7 ecc. Sono numeri primi in quanto non hanno altri fattori. Ma 6 non è primo (è composto) poiché 2 x 3 = 6
,.
Codice sorgente
# 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")
Produzione
407 non è un numero primo 11 volte 37 è 407
In questo programma, la variabile num viene controllata se è prima o meno. I numeri minori o uguali a 1 non sono numeri primi. Quindi, procediamo solo se il num è maggiore di 1.
Controlliamo se num è esattamente divisibile per qualsiasi numero compreso tra 2 e num - 1. Se troviamo un fattore in quell'intervallo, il numero non è primo. Altrimenti il numero è primo.
Possiamo diminuire la gamma di numeri in cui cerchiamo i fattori.
Nel programma sopra, il nostro intervallo di ricerca va da 2 a num - 1
.
Avremmo potuto usare la gamma, range(2,num//2)
o range(2,math.floor(math.sqrt(num)))
. Quest'ultimo intervallo si basa sul fatto che un numero composto deve avere un fattore inferiore alla radice quadrata di quel numero. Altrimenti, il numero è primo.
È possibile modificare il valore della variabile num nel codice sorgente sopra per verificare se un numero è primo o meno per altri numeri interi.