| |
|
|
p.specht
|
'PrimTurbo, das Turbo-Primzahlensuchprogramm von @Johnathan, hier ohne Assemblercode
'Findet alle Primzahlen von 2 - z.B. 100.000 innerhalb von 12,6 Sekunden (Interpreter!)
WindowTitle "Jonathans PRIM-TURBO"
Cls
Declare Primeln&[], PrimIndex&, MaxPrimel&, ActPrimel&, StartZeit&, PrimCount&, Ausgabe%, JN$
Print "Primzahlen finden bis: ";
Input MaxPrimel&
Primeln&[MaxPrimel&] = 0
Print ""
Print "Primzahlen werden gesucht..."
StartZeit& = &gettickcount
WhileLoop 4, MaxPrimel&, 2
Primeln&[&loop] = 1
EndWhile
WhileLoop 3, (MaxPrimel& \ 3) + 1
ActPrimel& = &loop
If Primeln&[ActPrimel&] = 0
WhileLoop 3, (MaxPrimel& \ ActPrimel&), 2
Primeln&[&loop * ActPrimel&] = 1
EndWhile
EndIf
EndWhile
Print ""
Print "Suchen abgeschlossen."
Print "Benötigte Zeit: " + @Str$((&gettickcount - StartZeit&) / 1000) + " Sekunden."
Print ""
Print "Primzahlen zählen (J/N)? ";
Input JN$
If @Upper$(JN$) = "J"
Print ""
Print "Primzahlen werden gezählt..."
PrimCount& = 0
WhileLoop 2, MaxPrimel&
If Primeln&[&loop] = 0
Inc PrimCount&
EndIf
EndWhile
Print ""
Print "Gefundene Primzahlen: " + @Str$(PrimCount&)
EndIf
Print ""
Print "Ausgeben (0 = Nicht ausg.; 1 = Im Fenster ausgeben;"
Print "2 = In File ausgeben; 3 = beides)? ";
Input Ausgabe%
If (Ausgabe% Mod 2)
Print ""
Print "Ausgabe:"
WhileLoop 2, MaxPrimel&
If Primeln&[&loop] = 0
Print &loop,
if %csrlin>25:cls
endif
EndIf
EndWhile
EndIf
If (Ausgabe% \ 2)
Print ""
Print "Dateiausgabe..."
Assign #1, "Primzahlen.txt"
ReWrite #1
WhileLoop 2, MaxPrimel&
If Primeln&[&loop] = 0
Print #1, &loop
EndIf
EndWhile
Close #1
EndIf
WaitInput
End
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 18.04.2021 ▲ |
|
|
|