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)