\ sieve of Eratosthenes in FORTH/6000 \ GLM, October 2026 10000 CONSTANT LIMIT CREATE FLAGS LIMIT 1+ ALLOT : SIEVE ( limit -- count ) DUP 2 < IF DROP 0 EXIT THEN DUP FLAGS SWAP 1 FILL DUP 2 DO I FLAGS + C@ IF DUP I 2* ?DO 0 I FLAGS + C! J +LOOP THEN LOOP 0 SWAP 2 DO I FLAGS + C@ IF 1+ THEN LOOP ; : PRIMES ( limit -- ) DUP SIEVE ." primes below " SWAP . ." : " . CR ; : FIRST-PRIMES ( limit -- ) DUP SIEVE DROP ." small primes:" CR 0 SWAP 2 DO I FLAGS + C@ IF I 4 .R 1+ DUP 10 MOD 0= IF CR THEN THEN LOOP CR DROP ; 10 PRIMES 100 PRIMES LIMIT PRIMES 50 FIRST-PRIMES : SIEVE-US ( -- us ) CLOCK 200 0 DO LIMIT SIEVE DROP LOOP CLOCK SWAP - 200 / ; ." sieve(10000), 200 passes: " SIEVE-US U. ." us per pass" CR