The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
我不想只是用谷歌搜索这个问题的解决方案,因为我想了解这种语言。基本上,如果我运行它,我现在拥有的东西,我的终端会停止响应。没有错误消息或任何东西。我猜这是一个无限循环?
我正在尝试找到 1000 以下的素因数。我查过埃拉托色尼筛法,但不知道如何写出其中的一个。在此先感谢您提供的所有帮助。
$factors = []
$i = 1
def factor(n)
$i += 1
while $i < n do
$factors << $i if ($i < 1000 && n % $i == 0)
end
end
factor(600851475143)
puts $factors
最佳答案
您有一个循环,该循环将一直运行,直到 $i
和 n
之间的关系以某种定义的方式发生变化。这将有点困难,因为 $i
和 n
都不会在循环中偏离它们的初始值。
由于您离解决方案还很远,所以我不确定如何在不实际为您编写的情况下告诉您如何编写。我能做的最好的就是建议看看 the pseudocode并尝试将其逐字转录成 Ruby。
我想指出的另一件事是您对全局变量的依赖。它们几乎从不在 Ruby 中使用,因为它们表明代码存在结构问题。他们几乎总是一个坏主意。不使用类时,仅使用普通变量(i
、factors
...)而不是全局变量($i
、$因素
...).
关于ruby - ruby 中的欧拉 #3。我对 ruby 有什么不了解的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31334612/