func cuban_primes(n) { 1..Inf -> lazy.map {|k| 3*k*(k+1) + 1 }\ .grep{ .is_prime }\ .first(n) } cuban_primes(200).slices(10).each { say .map { "%9s" % .commify }.join(' ') } say ("\n100,000th cuban prime is: ", cuban_primes(1e5).last.commify)