【发布时间】:2011-04-04 16:32:15
【问题描述】:
我正在尝试找到数字 N 的因数。我希望能够迭代我的素数数组,当满足条件时,返回迭代的开始,而不是继续。
arrFactors = []
N = 150
[2,3,5,7,11].each do |a|
if N % a == 0
arrFactors.push(a)
N = N/a
break if N == 1
<return to start of the collection [2,3,5,7,11]>
end
end
如何在 Ruby 1.8.6 中做到这一点? (我注意到 1.8.7 中有一个“循环”枚举器可能是相关的?)
附言
我知道下面的算法还不完美(我想我需要提供 N = 1)。我也知道 Ruby 提供了一种分解方法,但我不想使用,因为我在这里学习。
【问题讨论】: