1#! /usr/bin/ruby
2
3#================================================================
4# primelist
5# Print a sparse list of prime numbers
6#================================================================
7
8
9MINNUM = 1
10MAXNUM = 2 ** 52
11MULNUM = Math.sqrt(Math.sqrt(2))
12
13uniq = {}
14base = MINNUM
15while base <= MAXNUM
16  num = base
17  while num < base * 1.99 - 1
18    cand = num
19    while true
20      cmd = sprintf('factor %d', cand)
21      res = `#{cmd}`
22      res = res.gsub(/ *\n/, '')
23      res = res.gsub(/.*: */, '')
24      if res !~ / / && !uniq[res]
25        printf("%s\n", res);
26        uniq[res] = true
27        break
28      end
29      cand += 1
30    end
31    num *= MULNUM
32  end
33  base *= 2
34end
35
36exit(0)
37
38
39
40# END OF FILE
41