Przekroczono limit czasu projektu Euler # 3 w rozwiązaniu Ruby

Przeglądam kilka problemów z projektem Euler, aby ćwiczyć rozwiązywanie problemów za pomocą Rubiego. Wymyśliłem następujące rozwiązanie problemu 3 i chociaż działa ono dla mniejszych liczb, nigdy nie wydaje się zwracać wartości dla większych liczb. Czy to z powodu czegoś związanego z Bignum? Czy ktoś może mi opisać, dlaczego tak się skończyło i jak lepiej rozwiązać ten problem (najlepiej z rozumowaniem / informacją o tym, co dzieje się za kulisami. PróbujęRozumiesz)

Problem z projektem Euler:

Pierwszymi czynnikami 13195 są 5, 7, 13 i 29. Jaki jest największy współczynnik pierwszorzędowy liczby 600851475143?

Moje rozwiązanie:

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)

questionAnswers(2)

yourAnswerToTheQuestion