[gforth] / gforth / siev.fs  

gforth: gforth/siev.fs


1 : anton 1.1 \ #! /usr/stud/paysan/bin/forth
2 :    
3 :     DECIMAL
4 :     \ : SECS TIME&DATE SWAP 60 * + SWAP 3600 * + NIP NIP NIP ;
5 :     CREATE FLAGS 8190 ALLOT
6 :     variable eflag
7 :     \ FLAGS 8190 + CONSTANT EFLAG
8 :    
9 :     : PRIMES ( -- n ) FLAGS 8190 1 FILL 0 3 EFLAG @ FLAGS
10 :     DO I C@
11 :     IF DUP I + DUP EFLAG @ <
12 :     IF EFLAG @ SWAP
13 :     DO 0 I C! DUP +LOOP
14 :     ELSE DROP THEN SWAP 1+ SWAP
15 :     THEN 2 +
16 :     LOOP DROP ;
17 :    
18 :     : BENCHMARK 0 1000 0 DO PRIMES NIP LOOP ;
19 :     \ SECS BENCHMARK . SECS SWAP - CR . .( secs)
20 :     : main
21 :     flags 8190 + eflag !
22 :     benchmark ( . ) drop
23 :     ;

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help