Projeto Euler # 3 na solução Ruby expira

Eu estou passando por alguns dos problemas do Project Euler para praticar a resolução de problemas usando Ruby. Eu criei a seguinte solução para o problema 3 e, embora funcione para números menores, nunca parece retornar um valor para números maiores. Isso é por causa de algo a ver com Bignum? Alguém pode descrever para mim porque é o tempo limite, e melhor maneira de resolver este problema (de preferência com raciocínio / info sobre o que está acontecendo nos bastidores. Eu estou tentandoCompreendo)

Problema do Projeto Euler:

Os fatores primos de 13195 são 5, 7, 13 e 29. Qual é o maior fator primo do número 600851475143?

Minha solução:

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)