Primzahlgenerator

Der Quellcode entstand Ende der 90er Jahre im Basic-Dialekt für QB45. Die Datei kann herunter geladen werden. Wenn man den Dateinamen ändert in primzahl.asc, kann das Programm in einer DOS-Umgebung mit QB45.exe (externer Link) ausgeführt werden.

primzl18.asc.txt

Der Kern des Programms:

DEF fn.frac (a#) = a# – INT(a#)
DIM p30(8)
DIM sum30#(8)
pr.alt# = 1

dreissiger:
DATA 1, 7, 11, 13, 17, 19, 23, 29
‘——————————————————-
ermittle.primzahl:
limit# = 2 * INT(SQR(start.zahl#) + 1)
FOR z# = 3 TO limit# STEP 2
IF fn.frac(start.zahl# / z#) = 0 THEN GOTO weiter
NEXT z#

rem PRINT nr#; start.zahl#;
PRINT #1, nr#; start.zahl#;
IF nr# < 12 THEN PRINT #1, ” – “; : GOTO get.diff
FOR i = 1 TO 8
IF fn.frac((start.zahl# – p30(i)) / 30) = 0 THEN GOTO gefunden
NEXT i
PRINT “Programm geht noch nicht bei “; nr#; start.zahl#: END

gefunden:
sum30#(i) = sum30#(i) + 1
rem PRINT p30(i);
PRINT #1, p30(i);
get.diff:
nr# = nr# + 1
diff = start.zahl# – pr.alt#
pr.alt# = start.zahl#
rem PRINT diff
PRINT #1, diff

weiter:
start.zahl# = start.zahl# + 2
RETURN

Der Quellcode enthält wenige erläuternde Kommentar. Damals war ich noch jung und konnte viel im Kopf behalten. 😉 Heute will ich die Datei nicht mehr ergänzen, um sicher zu stellen, dass nicht versehentlich etwas am Code verändert wird.

Zur errechneten Primzahltabelle