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:
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.
2. Inizializziamo due variabili. Inizializziamo i divisori delle variabili con valore 0. Usiamo la funzione InputBox per ottenere un numero dall'utente.
number = InputBox("Enter a number")
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.
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.
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.
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.
MsgBox number & " is a prime number"
Else
MsgBox number & " is not a prime number"
End If
7. Testare il programma.
Risultato per 104729: