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:
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.
2. Vi initialiserer to variabler. Vi initialiserer de variable delene med verdi 0. Vi bruker InputBox-funksjonen for å få et nummer fra brukeren.
number = InputBox("Enter a number")
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.
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.
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.
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.
MsgBox number & " is a prime number"
Else
MsgBox number & " is not a prime number"
End If
7. Test programmet.
Resultat for 104729: