00000000: 50 52 4F 47 52 41 4D 20 50 53 49 45 56 45 28 44 |PROGRAM PSIEVE(D|
00000010: 49 53 50 4C 41 59 20 50 52 49 4D 45 20 4E 55 4D |ISPLAY PRIME NUM|
00000020: 42 45 52 53 2C 33 2F 33 2F 38 32 29 3B 0D 43 4F |BERS,3/3/82);.CO|
00000030: 4E 53 54 20 20 4E 3D 31 30 30 30 3B 0D 56 41 52 |NST N=1000;.VAR|
00000040: 20 20 4E 45 58 54 2C 4A 20 3A 20 49 4E 54 45 47 | NEXT,J : INTEG|
00000050: 45 52 3B 0D 20 20 20 20 20 53 49 45 56 45 20 3A |ER;. SIEVE :|
00000060: 20 41 52 52 41 59 20 5B 31 2E 2E 4E 5D 20 4F 46 | ARRAY [1..N] OF|
00000070: 20 42 4F 4F 4C 45 41 4E 3B 0D 42 45 47 49 4E 0D | BOOLEAN;.BEGIN.|
00000080: 20 20 46 4F 52 20 4E 45 58 54 3A 3D 32 20 54 4F | FOR NEXT:=2 TO|
00000090: 20 4E 0D 20 20 20 20 44 4F 20 53 49 45 56 45 20 | N. DO SIEVE |
000000A0: 5B 4E 45 58 54 5D 3A 3D 54 52 55 45 3B 0D 20 20 |[NEXT]:=TRUE;. |
000000B0: 57 52 49 54 45 4C 4E 28 27 41 52 52 41 59 20 43 |WRITELN('ARRAY C|
000000C0: 4C 45 41 52 45 44 27 29 3B 0D 20 20 46 4F 52 20 |LEARED');. FOR |
000000D0: 4E 45 58 54 3A 3D 32 20 54 4F 20 4E 0D 20 20 20 |NEXT:=2 TO N. |
000000E0: 20 44 4F 20 42 45 47 49 4E 0D 20 20 20 20 20 20 | DO BEGIN. |
000000F0: 20 20 20 49 46 20 53 49 45 56 45 5B 4E 45 58 54 | IF SIEVE[NEXT|
00000100: 5D 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 54 |]. T|
00000110: 48 45 4E 20 42 45 47 49 4E 0D 20 20 20 20 20 20 |HEN BEGIN. |
00000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 52 | WR|
00000130: 49 54 45 20 28 4E 45 58 54 3A 35 29 3B 0D 20 20 |ITE (NEXT:5);. |
00000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000150: 20 20 4A 3A 3D 4E 45 58 54 3B 0D 20 20 20 20 20 | J:=NEXT;. |
00000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 | R|
00000170: 45 50 45 41 54 0D 20 20 20 20 20 20 20 20 20 20 |EPEAT. |
00000180: 20 20 20 20 20 20 20 20 20 20 20 20 53 49 45 56 | SIEV|
00000190: 45 20 5B 4A 5D 20 3A 3D 20 46 41 4C 53 45 3B 0D |E [J] := FALSE;.|
000001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000001B0: 20 20 20 20 20 20 4A 20 3A 3D 20 4A 20 2B 20 4E | J := J + N|
000001C0: 45 58 54 0D 20 20 20 20 20 20 20 20 20 20 20 20 |EXT. |
000001D0: 20 20 20 20 20 20 20 20 55 4E 54 49 4C 20 4A 3E | UNTIL J>|
000001E0: 4E 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |N. |
000001F0: 20 20 20 20 45 4E 44 0D 20 20 20 20 20 20 20 45 | END. E|
00000200: 4E 44 0D 45 4E 44 2E 0D 03 |ND.END... |
PROGRAM PSIEVE(DISPLAY PRIME NUMBERS,3/3
/82);.CONST N=1000;.VAR NEXT,J : INTEG
ER;. SIEVE : ARRAY [1..N] OF BOOLEAN
;.BEGIN. FOR NEXT:=2 TO N. DO SIEVE
[NEXT]:=TRUE;. WRITELN('ARRAY CLEARED')
;. FOR NEXT:=2 TO N. DO BEGIN.
IF SIEVE[NEXT]. THEN BEGI
N. WRITE (NEXT:5);.
J:=NEXT;.
REPEAT. SIEV
E [J] := FALSE;. J
:= J + NEXT. UNTIL J>
N. END. END.END..
.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL