Prime Number Checker in Excel VBA
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:
-
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
-
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")
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.
-
Wir beginnen eine For Next-Schleife.
For i = 1 To number
-
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 =.
-
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
-
vergessen Sie nicht, um die Schleife zu schließen..
-
Next i
-
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
-
Testen Sie das Programm
Ergebnis für 104729:..