00000000: 28 2A 20 44 49 53 50 4C 41 59 20 50 52 49 4D 45 |(* DISPLAY PRIME|
00000010: 20 4E 55 4D 42 45 52 53 20 20 22 50 53 49 45 56 | NUMBERS "PSIEV|
00000020: 45 22 20 20 33 2F 31 37 2F 38 31 20 2A 29 0D 0A |E" 3/17/81 *)..|
00000030: 43 4F 4E 53 54 20 20 4E 3D 31 30 30 30 3B 0D 0A |CONST N=1000;..|
00000040: 56 41 52 20 20 4E 45 58 54 2C 4A 20 3A 20 49 4E |VAR NEXT,J : IN|
00000050: 54 45 47 45 52 3B 0D 0A 20 20 20 20 20 53 49 45 |TEGER;.. SIE|
00000060: 56 45 20 3A 20 41 52 52 41 59 20 5B 31 2E 2E 4E |VE : ARRAY [1..N|
00000070: 5D 20 4F 46 20 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 |] OF BOOLEAN;..B|
00000080: 45 47 49 4E 0D 0A 20 20 46 4F 52 20 4E 45 58 54 |EGIN.. FOR NEXT|
00000090: 3A 3D 32 20 54 4F 20 4E 0D 0A 20 20 20 20 44 4F |:=2 TO N.. DO|
000000A0: 20 53 49 45 56 45 20 5B 4E 45 58 54 5D 3A 3D 54 | SIEVE [NEXT]:=T|
000000B0: 52 55 45 3B 0D 0A 20 20 57 52 49 54 45 4C 4E 28 |RUE;.. WRITELN(|
000000C0: 27 41 52 52 41 59 20 43 4C 45 41 52 45 44 27 29 |'ARRAY CLEARED')|
000000D0: 3B 0D 0A 20 20 46 4F 52 20 4E 45 58 54 3A 3D 32 |;.. FOR NEXT:=2|
000000E0: 20 54 4F 20 4E 0D 0A 20 20 20 20 44 4F 20 42 45 | TO N.. DO BE|
000000F0: 47 49 4E 0D 0A 20 20 20 20 20 20 20 20 20 49 46 |GIN.. IF|
00000100: 20 53 49 45 56 45 5B 4E 45 58 54 5D 0D 0A 20 20 | SIEVE[NEXT].. |
00000110: 20 20 20 20 20 20 20 20 20 20 20 54 48 45 4E 20 | THEN |
00000120: 42 45 47 49 4E 0D 0A 20 20 20 20 20 20 20 20 20 |BEGIN.. |
00000130: 20 20 20 20 20 20 20 20 20 20 20 57 52 49 54 45 | WRITE|
00000140: 20 28 4E 45 58 54 2C 27 20 27 29 3B 0D 0A 20 20 | (NEXT,' ');.. |
00000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000160: 20 20 4A 3A 3D 4E 45 58 54 3B 0D 0A 20 20 20 20 | J:=NEXT;.. |
00000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000180: 52 45 50 45 41 54 0D 0A 20 20 20 20 20 20 20 20 |REPEAT.. |
00000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 49 | SI|
000001A0: 45 56 45 20 5B 4A 5D 20 3A 3D 20 46 41 4C 53 45 |EVE [J] := FALSE|
000001B0: 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 |;.. |
000001C0: 20 20 20 20 20 20 20 20 20 4A 20 3A 3D 20 4A 20 | J := J |
000001D0: 2B 20 4E 45 58 54 0D 0A 20 20 20 20 20 20 20 20 |+ NEXT.. |
000001E0: 20 20 20 20 20 20 20 20 20 20 20 20 55 4E 54 49 | UNTI|
000001F0: 4C 20 4A 3E 4E 0D 0A 20 20 20 20 20 20 20 20 20 |L J>N.. |
00000200: 20 20 20 20 20 20 20 20 20 45 4E 44 0D 0A 20 20 | END.. |
00000210: 20 20 20 20 20 45 4E 44 0D 0A 45 4E 44 2E 0D 0A | END..END...|
00000220: 03 0D 0A |... |
(* DISPLAY PRIME NUMBERS "PSIEVE" 3/17
/81 *)..CONST N=1000;..VAR NEXT,J : IN
TEGER;.. SIEVE : ARRAY [1..N] OF BOO
LEAN;..BEGIN.. FOR NEXT:=2 TO N.. DO
SIEVE [NEXT]:=TRUE;.. WRITELN('ARRAY C
LEARED');.. FOR NEXT:=2 TO N.. DO BE
GIN.. IF SIEVE[NEXT]..
THEN BEGIN.. WRITE
(NEXT,' ');.. J:=NEX
T;.. REPEAT..
SIEVE [J] := FALSE;..
J := J + NEXT..
UNTIL J>N..
END.. END..END......
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL