/ / Prime Number Checker in Excel VBA

Prime Number Checker in Excel VBA

Di seguito vedremo un programma in Excel VBA quello controlli se un numero è un numero primo o no.

Prima che inizi: in matematica, un numero primo è un numero che ha esattamente due distinti numeri divisori: 1 e se stesso. I più piccoli venticinque numeri primi sono: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89 e 97. Ad esempio, 8 ha 1, 2, 4 e 8 come divisori ed è non un numero primo

Situazione:

Prime Number Checker in Excel VBA

1. In primo luogo, dichiariamo tre variabili. Una variabile intera che chiamiamo divisori, una variabile lunga che chiamiamo numero e una variabile lunga che chiamiamo i. Usiamo qui variabili lunghe perché le variabili lunghe hanno una capacità maggiore delle variabili Integer.

Dim divisors As Integer, number As Long, i As Long

2. Inizializziamo due variabili. Inizializziamo i divisori delle variabili con valore 0. Usiamo la funzione InputBox per ottenere un numero dall'utente.

divisors = 0
number = InputBox("Enter a number")

Inserisci un numero

Dopo che l'utente ha inserito un numero, vogliamo verificare se questo numero è un numero primo o meno. Ricorda, un numero primo ha esattamente due distinti numeri divisori: 1 e se stesso.

3. Iniziamo un ciclo For Next.

For i = 1 To number

4. Ora arriva la parte più importante del programma. Per calcolare il numero di divisori di un numero, usiamo l'operatore Mod. L'operatore Mod dà il resto di una divisione. Quindi 7 mod 2 darebbe 1. 7 è diviso per 2 (3 volte) per dare un resto di 1. Solo se "numero mod i" è uguale a 0, i è un divisore di numero. In questo caso vogliamo incrementare i divisori delle variabili di 1. La macro sotto fa il trucco.

If number Mod i = 0 Then
    divisors = divisors + 1
End If

Excel VBA verifica ciò per i = 1, i = 2, i = 3, i= 4 fino a i = numero. Nota che i = 1 e i = numero sono sempre divisori di numero. Solo se questi numeri sono gli unici divisori di numero, il numero è un numero primo.

5. Non dimenticare di chiudere il ciclo.

Next i

6. Se i divisori sono uguali a 2, viene visualizzato un msgbox che indica che il numero inserito è un numero primo. Se il numero di divisori è superiore a 2, viene visualizzato un messaggio che indica che il numero inserito non è un numero primo.

If divisors = 2 Then
    MsgBox number & " is a prime number"
Else
    MsgBox number & " is not a prime number"
End If

7. Testare il programma.

Risultato per 104729:

Risultato del Checker numero primo

Leggi anche: