summaryrefslogtreecommitdiff
path: root/tests/general/cxprimes.icn
blob: 25a5df7c3cb03b39c32b64625eae8b41c5924f37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#  prime number generation using co-expressions

procedure main(args)
   local s, n, x

   n := integer(get(args)) | 100
   s := create (2 to n)
   while (x := @s) do {
      write(x)
      s := create sieve(x, s)
   }
end

procedure sieve(x, s)
   local t

   while t := @s do {
      if t % x ~= 0 then suspend t
   }
end