Public
Function
Primzahl(zahl
As
Long
)
As
Boolean
Rem Max Richter
Rem Deklarartionen
Dim
teiler
As
Long
Dim
e
As
Double
Dim
nichtgefunden
As
Boolean
Rem Intialisierung
nichtgefunden =
True
prim =
False
nichtprim =
False
teiler = 3
Rem Überprüfung
Rem Überprüfung Gerade Zahl
If
zahl
Mod
2 = 0
Then
nichtgefunden =
False
prim =
False
nichtprim =
True
teiler = 2
End
If
Rem Schleife
While
nichtgefunden
If
zahl
Mod
teiler = 0
Then
nichtgefunden =
False
nichtprim =
True
prim =
False
End
If
If
nichtgefunden
Then
e = zahl / teiler
If
teiler > e
Then
nichtgefunden =
False
keineprim =
False
prim =
True
End
If
End
If
If
nichtgefunden
Then
teiler = teiler + 2
End
If
Wend
If
zahl = teiler
Then
Primzahl =
True
Else
: Primzahl =
False
End
If
End
Function
Public
Sub
Goldbachsche_Vermutung()
Rem Max Richter
Rem Deklarationen
Dim
wert
As
Long
Dim
limit
As
Long
Dim
s1
As
Long
Dim
s2
As
Long
Dim
zeile
As
Long
Dim
nichterkannt
As
Boolean
Rem Intialisierung
limit = Application.InputBox(prompt:=
"Bitte geben sie eine Zahl ein!"
& (Chr(13)) &
"Es werden alle Zahlen bis zu dieser Zahl darauf überprüft, ob die Goldbergsche Vermutung auf sie zutrifft."
, Title:=
"Limit"
,
Default
:=
"Hier Zahl eingeben!"
)
wert = 6
s1 = 3
zeile = 2
nichterkannt =
True
Rem Erkennung
While
wert <= limit
While
nichterkannt
If
Primzahl(s1)
Then
s2 = wert - s1
If
Primzahl(s2)
Then
Cells(zeile, 1) = s1
Cells(zeile, 2) = s2
Cells(zeile, 3) = wert
nichterkannt =
False
zeile = zeile + 1
End
If
End
If
If
s1 = wert
Then
nichterkannt =
False
MsgBox
"Auf die Zahl "
& wert &
" trifft die Goldbergsche Vermutung nicht zu!"
End
If
s1 = s1 + 2
Wend
wert = wert + 2
s1 = 3
nichterkannt =
True
Wend
End
Sub