El proyecto Euler # 3 en la solución Ruby expira.

Estoy repasando algunos de los problemas del Proyecto Euler para practicar la resolución de problemas con Ruby. Se me ocurrió la siguiente solución para el problema 3, y mientras funciona para números más pequeños, parece que nunca devuelve un valor para números más grandes. ¿Esto se debe a algo que ver con Bignum? Alguien me puede explicar por qué es el tiempo de espera, y una mejor manera de resolver este problema (preferiblemente con razonamiento / información sobre lo que está sucediendo detrás de la escena. Estoy tratando deentender)

Problema del proyecto Euler:

Los factores primos de 13195 son 5, 7, 13 y 29. ¿Cuál es el factor primo más grande del número 600851475143?

Mi solución:

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)

Respuestas a la pregunta(2)

Su respuesta a la pregunta