#! /usr/bin/ruby
#================================================================
# primelist
# Print a sparse list of prime numbers
#================================================================
MINNUM = 1
MAXNUM = 2 ** 52
MULNUM = Math.sqrt(Math.sqrt(2))
uniq = {}
base = MINNUM
while base <= MAXNUM
num = base
while num < base * 1.99 - 1
cand = num
while true
cmd = sprintf('factor %d', cand)
res = `#{cmd}`
res = res.gsub(/ *\n/, '')
res = res.gsub(/.*: */, '')
if res !~ / / && !uniq[res]
printf("%s\n", res);
uniq[res] = true
break
end
cand += 1
end
num *= MULNUM
end
base *= 2
end
exit(0)
# END OF FILE