var factorial_primes = Enumerator({|f| for k in (1..Inf) { if (k!-1 -> is_prime) { f([k, -1]) } if (k!+1 -> is_prime) { f([k, +1]) } } }) func abr(v) { v.len <= 40 ? v : (v.to_s.first(20) + '..' + v.to_s.last(20) + " (#{v.len} digits)") } factorial_primes.first(30).each_2d {|k,i| printf("%3d! %s %d = %s\n", k, (i.sgn < 0 ? '-' : '+'), i.abs, abr(k! + i)) }