/ / Prime Number Checker i Excel VBA

Prime Number Checker i Excel VBA

Nedenfor ser vi på et program i Excel VBA at sjekker om et tall er a primtall eller ikke.

Før du begynner: I matematikk er et primaltall et tall som har nøyaktig to forskjellige taledeltakere: 1 og seg selv. De minste femti prime tallene er: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89 og 97. For eksempel har 8 1, 2, 4 og 8 som divisorer og er ikke et hovednummer.

Situasjon:

Prime Number Checker i Excel VBA

1. Først erklærer vi tre variabler. En helhet variabel vi kaller divisors, en lang variabel vi kaller nummer og en lang variabel vi kaller jeg. Vi bruker lange variabler her fordi lange variabler har større kapasitet enn integervariabler.

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

2. Vi initialiserer to variabler. Vi initialiserer de variable delene med verdi 0. Vi bruker InputBox-funksjonen for å få et nummer fra brukeren.

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

Skriv inn et nummer

Etter at brukeren har oppgitt et nummer, vil vi sjekke om dette nummeret er et hovednummer eller ikke. Husk, et primallummer har nøyaktig to forskjellige nummer divisorer: 1 og seg selv.

3. Vi starter en For Next-løkke.

For i = 1 To number

4. Nå kommer den viktigste delen av programmet. For å beregne antall divisorer av et nummer bruker vi Mod-operatøren. Mod-operatøren gir resten av en divisjon. Så 7 mod 2 ville gi 1. 7 er delt med 2 (3 ganger) for å gi en rest på 1. Bare hvis "tall mod i" er 0, er jeg en divisor av nummer. I dette tilfellet ønsker vi å øke de variable divisors med 1. Makroen nedenfor gjør kunsten.

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

Excel VBA sjekker dette for i = 1, i = 2, i = 3, i= 4 til i = tall. Merk at i = 1 og i = tall alltid er divisorer av nummer. Bare hvis disse tallene er de eneste delene av nummer, er tallet et primærtall.

5. Ikke glem å lukke løkken.

Next i

6. Hvis divisorer er lik 2, viser vi en msgbox som sier at det angitte nummeret er et hovednummer. Hvis antall divisorer er høyere enn 2, viser vi en msgbox som sier at det angitte nummeret ikke er et hovednummer.

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

7. Test programmet.

Resultat for 104729:

Prime Number Checker Resultat

Les også: