TheAlgorithms-Ruby/project_euler/problem_004/sol2.rb

27 lines
617 B
Ruby
Raw Permalink Normal View History

# frozen_string_literal: true
# A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
# Find the largest palindrome made from the product of two 3-digit numbers.
class Integer
def parindrome?
self == reverse
end
# 123.reverse == 321
# 100.reverse == 1
def reverse
result = 0
n = self
loop do
result = result * 10 + n % 10
break if (n /= 10).zero?
end
result
end
end
factors = (100..999).to_a
products = factors.product(factors).map { _1 * _2 }
puts products.select(&:parindrome?).max