OSDN Git Service
--- /dev/null
+( from rosetta code )
+: prime? ( n -- ? )
+ HERE + C@ 0= ;
+
+: composite! ( n -- )
+ HERE + 1 SWAP C! ;
+
+( : 2dup OVER OVER ; )
+
+: showPrimes
+ ." Primes: "
+ 2 DO I prime?
+ IF I . ENDIF
+ LOOP ;
+
+: countPrimes
+ ." Prime count: "
+ 0 SWAP
+ 2 DO I prime?
+ IF 1+ ENDIF
+ LOOP
+ . ;
+
+-->
+
+
+
+
+
+
+
+
+
+: sieve ( n -- )
+ HERE OVER ERASE
+ 2
+ BEGIN
+ 2dup DUP * >
+ WHILE
+ DUP prime? IF
+ 2dup DUP * DO
+ I composite!
+ DUP +LOOP
+ ENDIF
+ 1+
+ REPEAT
+ DROP
+ ;
+
+
+100 sieve
+
+dup
+
+showPrimes
+
+countPrimes
+
+
+