# VB 6 Programm für Primzahlen



## godi (15 Juni 2007)

Hallo!

Ich habe jetzt ein Programm geschrieben zur Ermittlung von Primzahlen zwischen zwei Zahlen (von bis):


```
Option Explicit
 
Private Sub Form_Load()
txtPrimzahl.Locked = True
txtvon = 0
txtbis = 100
End Sub
 
Private Sub cmdErmitteln_Click()
Dim von As Long
Dim bis As Long
Dim Primzahl As Long
Dim Mögliche_Zahlen As Long
Dim Divisor As Long
Dim Rest As Long
Dim boolPrimzahl As Boolean
Dim Zahl As Long
 
If Not IsNumeric(txtvon) Then
    MsgBox prompt:=("Geben sie bitte eine Zahl für 'Von' ein!")
    Exit Sub
End If
 
If Not IsNumeric(txtbis) Then
    MsgBox prompt:=("Geben sie bitte eine Zahl für 'bis' ein!")
    Exit Sub
End If
 
txtPrimzahl.Text = ""
von = txtvon
bis = txtbis
Zahl = 0
 
'Ermittle Primzahlen
For Mögliche_Zahlen = von To bis                 'Ermitteln der Zahlen die in Frage kommen können
    For Divisor = 2 To Mögliche_Zahlen - 1       'Divisor ermitteln (2 bis Mögliche Zahl minus 1)
        Rest = Mögliche_Zahlen Mod Divisor       'Ermittle den Rest
        If Rest = 0 Then                         'Kontrolliere ob Rest überbleibt
            boolPrimzahl = True
        End If
    Next
    DoEvents
    If Not boolPrimzahl And Not (Mögliche_Zahlen = 0 Or Mögliche_Zahlen = 1) Then
        Zahl = Zahl + 1
        Primzahl = Mögliche_Zahlen
        txtPrimzahl.Text = txtPrimzahl.Text & "Primzahl " & Zahl & ": " & Primzahl & vbCrLf
    End If
    boolPrimzahl = False
Next
 
End Sub
```
 
1) Kann man das Programm einfacher auch noch schreiben?
2) Wenn ich die Primzahlen von 0 bis 100000 haben will dann bleibt das Programm bei 28433 stehen. Warum ist das so?

godi


----------



## Ralle (15 Juni 2007)

Sieh dir mal diesen Algo an:

http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes

und auch das ist interessant:

http://www.java-forum.org/de/viewtopic.php?p=283069

Leider nicht in VB, sollte aber kein Problem sein.


----------



## Oberchefe (19 Juni 2007)

http://www.vbarchiv.net/faq/strings_primzahlen.php


----------

