require 'prime' def pandigital?(n) n.to_s.split('').map(&:to_i).sort == (1..n.to_s.length).to_a end def largest_pandigital_prime_up_to(n) Prime.take_while { |i| i < n }.select { |i| pandigital?(i) }.max end