Im Folgenden werden wir ein Programm in Excel VBA aussehen, dass überprüft, ob eine Zahl eine Primzahl ist oder nicht.

Bevor Sie beginnen: in der Mathematik ist eine Primzahl eine Zahl, die genau zwei unterschiedliche Anzahl Teilern hat: 1 und mich 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 beispielsweise 8 haben 1, 2, 4 und 8 als Divisoren und keine Primzahl ist.

Situation:

Prime Number Checker in Excel VBA

  1. Zuerst erklären wir drei Variablen. Ein Integer-Variable nennen wir Teilern, eine lange Variable nennen wir Nummer und eine lange Variable, die wir i nennen. Wir verwenden Lange Variablen hier, weil lange Variablen größere Kapazität haben als Integer-Variablen.

Dim divisors As Integer, number As Long, i As Long
  1. Wir initialisieren zwei Variablen. Wir initialisieren die Variable Teilern mit dem Wert 0 Wir haben die Funktion InputBox verwenden, um eine Zahl von dem Benutzer zu erhalten.

divisors = 0

number = InputBox("Enter a number")

Enter a Number

Nachdem der Benutzer eine Nummer eingegeben hat, wollen wir prüfen, ob diese Zahl eine Primzahl ist oder nicht. Denken Sie daran, eine Primzahl hat genau zwei unterschiedliche Anzahl Teilern: 1 und sich selbst.

  1. Wir beginnen eine For Next-Schleife.

For i = 1 To number
  1. 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. So 7 mod 2 geben würde, 1. 7 von 2 (3 mal) geteilt, um einen Rest von 1. Nur geben, wenn „Nummer i mod‘ gleich 0, i ein Teiler von Zahl ist. In diesem Fall wird die Variable erhöhen möchten Teilern von 1. die folgende Makro funktioniert der Trick.

If number Mod i = 0 Then

divisors = divisors + 1

End If

Excel VBA prüft diese für i = 1, i 2 =, i 3, = i = 4 bis Nummer i =.

  1. Beachten Sie, dass i = 1 und i = Zahl immer teiler Zahl sind nur wenn diese Zahlen die einzigen Teiler von der Zahl sind, ist die Zahl eine Primzahl

    1. vergessen Sie nicht, um die Schleife zu schließen..

Next i
  1. Wenn Teilern 2 entspricht, haben wir eine msgbox Anzeige sagen, dass die eingegebene Zahl eine Primzahl ist. Wenn die Anzahl der Teiler größer als 2 ist, liefern wir msgbox sagen, dass die eingegebene Nummer keine Primzahl ist

If divisors = 2 Then

MsgBox number & " is a prime number"

Else

MsgBox number & " is not a prime number"

End If
  1. Testen Sie das Programm

Ergebnis für 104729:..

Prime Number Checker Result