Проект Euler # 3 в решении Ruby истек

Я рассматриваю несколько проблем Project Euler, чтобы попрактиковаться в решении проблем с использованием Ruby. Я придумал следующее решение для задачи 3, и, хотя оно работает для меньших чисел, оно никогда не возвращает значение для больших чисел. Это из-за чего-то общего с Бигнумом? Может кто-нибудь описать мне, почему это время ожидания, и лучший способ решить эту проблему (желательно с рассуждениями / информацией о том, что происходит за кулисами. Я пытаюсьпонять)

Задача проекта Эйлера:

Основными факторами 13195 являются 5, 7, 13 и 29. Какой самый большой главный фактор числа 600851475143?

Мое решение:

def primecheck(number)
  (2...number).each { |x| return false if number % x == 0}
  true
end

def largestprime(number1)
  factors = []
    (1..number1).each do |i|
      if number1 % i == 0 && primecheck(i)
        factors << i
      end
    end
puts "The answer is #{factors.last}"
end

largestprime(600_851_475_143)