func fortunate(n) { var P = n.pn_primorial 2..Inf -> first {|m| P+m -> is_prob_prime } } var limit = 50 var uniq = Set() var all = [] for (var n = 1; uniq.len < 2*limit; ++n) { var m = fortunate(n) all << m uniq << m } say "Fortunate numbers for n = 1..#{limit}:" say all.first(limit) say "\n#{limit} Fortunate numbers, sorted with duplicates removed:" say uniq.sort.first(limit)