/ / Prime Number Checker in Excel VBA

Prime Number Checker in Excel VBA

Hieronder zullen we een programma bekijken in Excel VBA dat checks of een nummer een is priemgetal of niet.

Voordat je start: in de wiskunde is een priemgetal een getal dat precies twee verschillende nummerverdelingen heeft: 1 en zichzelf. De kleinste vijfentwintig priemgetallen zijn: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 , 79, 83, 89 en 97. 8 heeft bijvoorbeeld 1, 2, 4 en 8 als delers en is niet een priemgetal.

Situatie:

Prime Number Checker in Excel VBA

1. Eerst verklaren we drie variabelen. Eén Integer-variabele noemen we delers, één Long-variabele die we nummer noemen en één Long-variabele die we i noemen. We gebruiken hier Lange variabelen omdat Lange variabelen een grotere capaciteit hebben dan Integer-variabelen.

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

2. We initialiseren twee variabelen. We initialiseren de variabele delers met waarde 0. We gebruiken de InputBox-functie om een ​​nummer van de gebruiker te krijgen.

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

Voer een nummer in

Nadat de gebruiker een nummer heeft ingevoerd, willen we controleren of dit nummer een priemgetal is of niet. Vergeet niet dat een priemgetal precies twee verschillende nummerverdelingen heeft: 1 en zichzelf.

3. We starten een For Next-lus.

For i = 1 To number

4. Nu komt het belangrijkste deel van het programma. Om het aantal delers van een getal te berekenen, gebruiken we de Mod-operator. De Mod-operator geeft de rest van een divisie. Dus 7 mod 2 zou geven 1. 7 wordt gedeeld door 2 (3 keer) om een ​​rest van 1 te geven. Alleen als "nummer mod i" gelijk is aan 0, ben ik een deler van getal. In dit geval willen we de variabele delers met 1 verhogen. De onderstaande macro volstaat.

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

Excel VBA controleert dit voor i = 1, i = 2, i = 3, i= 4 tot i = nummer. Merk op dat i = 1 en i = nummer zijn altijd delers van het nummer. Alleen als deze nummers de enige delers van het nummer zijn, is het nummer een priemgetal.

5. Vergeet niet om de cirkel te sluiten.

Next i

6. Als de delers gelijk is aan 2, geven we een msgbox weer die zegt dat het ingevoerde nummer een priemgetal is. Als het aantal delers hoger is dan 2, geven we een bericht weer dat het ingevoerde nummer geen priemgetal is.

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

7. Test het programma.

Resultaat voor 104729:

Prime Nummer Checker Resultaat

Lees ook: