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