2 The Sieve of Eratosthenes (c. 276-196 BC)
3 Prints all prime numbers up to MAX
7 mtype = { number, eof };
9 chan root = [0] of { mtype, int };
11 proctype sieve(chan c; int prime)
12 { chan child = [0] of { mtype, int };
16 printf("MSC: %d is prime\n", prime);
21 printf("MSC: %d = %d*%d\n", n, prime, n/prime)
24 :: !haschild -> /* new prime */
46 :: (n < MAX) -> n++; root!number(n)
47 :: (n >= MAX) -> root!eof(0); break