/ / Primzahl-Checker in Excel VBA

Primzahlprüfung in Excel VBA

Unten sehen wir uns ein Programm in Excel VBA Das Kontrollen ob eine Zahl ein ist Primzahl oder nicht.

Bevor du anfängst: In der Mathematik ist eine Primzahl eine Zahl, die genau zwei verschiedene Zahlenteiler hat: 1 und sich selbst. Die kleinsten fünfundzwanzig Primzahlen sind: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 79, 83, 89 und 97. Zum Beispiel hat 8 1, 2, 4 und 8 als Teiler und ist nicht eine Primzahl.

Situation:

Primzahlprüfung in Excel VBA

1. Zuerst deklarieren wir drei Variablen. Eine Integer-Variable, die wir Divisoren nennen, eine Long-Variable, die wir Call-Nummer nennen, und eine Long-Variable, die wir i nennen. Wir verwenden Long-Variablen hier, weil Long-Variablen eine größere Kapazität als Integer-Variablen haben.

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

2. Wir initialisieren zwei Variablen. Wir initialisieren die variablen Teiler mit dem Wert 0. Wir verwenden die InputBox-Funktion, um eine Zahl vom Benutzer zu erhalten.

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

Geben Sie eine Nummer ein

Nachdem der Benutzer eine Nummer eingegeben hat, möchten wir prüfen, ob diese Nummer eine Primzahl ist oder nicht. Denken Sie daran, eine Primzahl hat genau zwei verschiedene Zahlenteiler: 1 und sich selbst.

3. Wir starten eine For Next-Schleife.

For i = 1 To number

4. Jetzt kommt der wichtigste Teil des Programms. Um die Anzahl der Teiler einer Zahl zu berechnen, verwenden wir den Mod-Operator. Der Mod-Operator gibt den Rest einer Division an. Also würde 7 Mod 2 1 ergeben. 7 wird durch 2 (3 mal) geteilt, um einen Rest von 1 zu ergeben. Nur wenn "Zahl mod i" gleich 0 ist, ist i ein Teiler der Zahl. In diesem Fall wollen wir die variablen Teiler um 1 erhöhen. Das folgende Makro macht den Trick.

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

Excel VBA überprüft dies für i = 1, i = 2, i = 3, i= 4 bis i = Nummer. Beachten Sie, dass i = 1 und i = Nummer immer Teiler der Zahl sind. Nur wenn diese Zahlen die einzigen Teiler der Zahl sind, ist die Zahl eine Primzahl.

5. Vergessen Sie nicht, die Schleife zu schließen.

Next i

6. Wenn Divisoren gleich 2 sind, zeigen wir eine msgbox an, die besagt, dass die eingegebene Zahl eine Primzahl ist. Wenn die Anzahl der Teiler höher als 2 ist, zeigen wir eine Nachricht an, dass die eingegebene Zahl keine Primzahl ist.

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

7. Testen Sie das Programm.

Ergebnis für 104729:

Primzahl Checker Ergebnis

Lesen Sie auch: