Aus Langeweile habe ich ein Word-Makro geschrieben, welches die ersten 25000 Primzahlen berechnet. Die Primzahlen werden ans Ende eines Worddokuments geschrieben.
Womöglich ist es ja für den einen oder die andere von Interesse… ;-)
Option ExplicitSub Primzahlen()Const ciMax As Integer = 25000 ' 25000 PrimzahlenDim aPrimzahlen() As LongDim iPruefling As Long, iIndex As IntegerDim iAnzahl As Long ' Long, damit die Funktion "inc" funktioniert.Dim bTeilbar As Boolean, oParagraf As ParagraphDim iWurzel As LongiAnzahl = 0iPruefling = 2ReDim aPrimzahlen(1 To ciMax)While iAnzahl < ciMaxbTeilbar = FalseiWurzel = Round(Sqr(iPruefling), 0) + 1 ' Plus 1 wegen eventuellem AbrundenFor iIndex = 1 To iAnzahl' Es reicht, bis zur Quadratwurzel des Prüflings zu testen.If aPrimzahlen(iIndex) >= iWurzel ThenExit ForEnd IfIf iPruefling Mod aPrimzahlen(iIndex) = 0 ThenbTeilbar = TrueExit ForEnd IfNextIf Not bTeilbar Theninc iAnzahlaPrimzahlen(iAnzahl) = iPrueflingEnd Ifinc iPrueflingWendFor iIndex = LBound(aPrimzahlen) To UBound(aPrimzahlen)Set oParagraf = ActiveDocument.Paragraphs.Add(ActiveDocument.Paragraphs.Last.Range)oParagraf.Range.Text = CStr(aPrimzahlen(iIndex)) & vbCrLfSet oParagraf = Nothing ' Nötig; nur: Warum?NextEnd SubSub inc(ByRef iZahl As Long)iZahl = iZahl + 1End Sub
