Проект 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)