was ist an diesem Primzahlenprogramm falsch?

lambi01

Grünschnabel
Hallo ich habe dieses Primzahlenprogramm erstellt nur irgewndwie zeigt es mir bei jeder zahl an, dass es keine Primzahl ist. Ich finde den Fehler einfach nicht, könnt ihr mir vielleicht helfen ?
Visual Basic:
Dim rest As Long
Dim teiler As Long
Dim zahl As Long


Private Sub BSFLRechnen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BSFLRechnen.Click

teiler = 2

Do
rest = zahl Mod teiler
If rest = 0 Then
TFJanein.Text = "keine Primzahl"
teiler = zahl
End If
If rest >= 1 Then
TFJanein.Text = "primzahl"
teiler = zahl
End If
teiler = teiler + 1
Loop Until teiler > zahl / 2
If zahl = 1 Then
TFJanein.Text = "keine primzahl"
End If
end sub
 
Mit welchem Wert geht "zahl" in die Funktion? Das erkenne ich hier nirgends. Wo kommt der Wert her? Falls hier tatsächlich keine Zuweisung stattfindet, dann ist der Default Wert sicherlich 0 und 0 läuft dann in den Zweig für "keine Primzahl". Dir fehlt in diesem Fall schlichtweg die Zuweisung an "zahl".

Ansonsten wirst du die Schleife nie wiederholen, denn (teiler = zahl) + 1 ist immer größer als zahl / 2 (zumindest für zahl >= 0)
Die Zuweisung von zahl an teiler macht für mich keinen Sinn.

Statt dem zweiten If-Zweig würde ich ein else-Zweig nutzen..
 
Zuletzt bearbeitet:
Zurück