00000000: 00 40 28 2A 20 45 52 41 54 4F 53 54 48 45 4E 45 |.@(* ERATOSTHENE|
00000010: 53 20 53 49 45 56 45 20 50 52 49 4D 45 20 4E 55 |S SIEVE PRIME NU|
00000020: 4D 42 45 52 20 47 45 4E 45 52 41 54 4F 52 0D 20 |MBER GENERATOR. |
00000030: 25 4C 10 82 2D 20 47 49 56 45 20 4C 49 53 54 49 |%L..- GIVE LISTI|
00000040: 4E 47 0D 2A 29 0D 82 53 49 5A 45 20 3D 20 31 30 |NG.*)..SIZE = 10|
00000050: 30 30 3B 0D 10 86 54 52 55 45 20 3D 20 31 3B 0D |00;...TRUE = 1;.|
00000060: 10 86 46 41 4C 53 45 20 3D 20 30 3B 0D 10 86 48 |..FALSE = 0;...H|
00000070: 4F 4D 45 20 3D 20 31 34 37 3B 0D 10 86 50 45 52 |OME = 147;...PER|
00000080: 4C 49 4E 45 20 3D 20 35 3B 0D 83 46 4C 41 47 53 |LINE = 5;..FLAGS|
00000090: 20 3A 20 84 5B 53 49 5A 45 5D 20 85 A1 3B 0D 10 | : .[SIZE] ..;..|
000000A0: 84 49 2C 20 4B 2C 20 50 52 49 4D 45 2C 20 43 4F |.I, K, PRIME, CO|
000000B0: 55 4E 54 2C 20 4F 4E 4C 49 4E 45 20 3A 20 FE 3B |UNT, ONLINE : .;|
000000C0: 0D 88 0D 43 4F 55 4E 54 20 3A 3D 20 30 3B 0D FF |...COUNT := 0;..|
000000D0: 28 AB 28 48 4F 4D 45 29 29 3B 0D 4F 4E 4C 49 4E |(.(HOME));.ONLIN|
000000E0: 45 20 3A 3D 20 30 3B 0D 9A 49 20 3A 3D 20 30 20 |E := 0;..I := 0 |
000000F0: 9B 53 49 5A 45 20 97 0D 10 82 46 4C 41 47 53 20 |.SIZE ....FLAGS |
00000100: 5B 49 5D 20 3A 3D 20 54 52 55 45 3B 0D 9A 49 20 |[I] := TRUE;..I |
00000110: 3A 3D 20 30 20 9B 53 49 5A 45 20 97 0D 10 82 92 |:= 0 .SIZE .....|
00000120: 46 4C 41 47 53 20 5B 49 5D 20 93 0D 10 84 88 0D |FLAGS [I] ......|
00000130: 10 84 50 52 49 4D 45 20 3A 3D 20 49 20 2B 20 49 |..PRIME := I + I|
00000140: 20 2B 20 33 3B 0D 10 84 4B 20 3A 3D 20 49 20 2B | + 3;...K := I +|
00000150: 20 50 52 49 4D 45 3B 0D 10 84 96 4B 20 3C 3D 20 | PRIME;....K <= |
00000160: 53 49 5A 45 20 97 0D 10 86 88 0D 10 86 46 4C 41 |SIZE ........FLA|
00000170: 47 53 20 5B 4B 5D 20 3A 3D 20 46 41 4C 53 45 3B |GS [K] := FALSE;|
00000180: 0D 10 86 4B 20 3A 3D 20 4B 20 2B 20 50 52 49 4D |...K := K + PRIM|
00000190: 45 0D 10 86 89 3B 0D 10 84 92 4F 4E 4C 49 4E 45 |E....;....ONLINE|
000001A0: 20 3E 20 50 45 52 4C 49 4E 45 20 93 0D 10 86 88 | > PERLINE .....|
000001B0: 0D 10 86 FF 3B 20 28 2A 20 4E 45 57 20 4C 49 4E |....; (* NEW LIN|
000001C0: 45 20 2A 29 0D 10 86 4F 4E 4C 49 4E 45 20 3A 3D |E *)...ONLINE :=|
000001D0: 20 30 0D 10 86 89 3B 0D 10 84 4F 4E 4C 49 4E 45 | 0....;...ONLINE|
000001E0: 20 3A 3D 20 4F 4E 4C 49 4E 45 20 2B 20 31 3B 0D | := ONLINE + 1;.|
000001F0: 10 84 43 4F 55 4E 54 20 3A 3D 20 43 4F 55 4E 54 |..COUNT := COUNT|
00000200: 20 2B 20 31 3B 0D 10 84 9D 28 50 52 49 4D 45 2C | + 1;....(PRIME,|
00000210: 22 20 22 29 0D 10 84 89 3B 0D 10 82 FF 3B 0D 10 |" ")....;....;..|
00000220: 82 FF 28 43 4F 55 4E 54 2C 20 22 20 50 52 49 4D |..(COUNT, " PRIM|
00000230: 45 53 22 29 0D 89 2E 0D 00 |ES")..... |
.@(* ERATOSTHENES SIEVE PRIME NUMBER GEN
ERATOR. %L..- GIVE LISTING.*)..SIZE = 10
00;...TRUE = 1;...FALSE = 0;...HOME = 14
7;...PERLINE = 5;..FLAGS : .[SIZE] ..;..
.I, K, PRIME, COUNT, ONLINE : .;...COUNT
:= 0;..(.(HOME));.ONLINE := 0;..I := 0
.SIZE ....FLAGS [I] := TRUE;..I := 0 .SI
ZE .....FLAGS [I] ........PRIME := I + I
+ 3;...K := I + PRIME;....K <= SIZE ...
.....FLAGS [K] := FALSE;...K := K + PRIM
E....;....ONLINE > PERLINE .........; (*
NEW LINE *)...ONLINE := 0....;...ONLINE
:= ONLINE + 1;...COUNT := COUNT + 1;...
.(PRIME," ")....;....;....(COUNT, " PRIM
ES").....
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL