list = [] def palindrome? n a = n.to_s.split('').map {|x| x.to_i} b = 0 i = 0 a.each do |m| b += m*10**i i += 1 end b == n ? n : nil end (100..999).each do |n| m = n while m > 99 list << m * n m -= 1 end end puts list.sort.map{|x| palindrome? x}.compact.uniq.sort[-1]