【发布时间】:2019-07-08 15:45:22
【问题描述】:
我是 Ruby 的新手。我过去确实有一些使用 python 的经验,但是最近当我重新开始编码时,我选择学习 Ruby。我正在开发一个需要找到数字的主要因素的程序,所以我创建了一种使用试除法的方法。然后当我尝试调用该方法时,我收到错误trial_division': undefined method `*' for nil:NilClass (NoMethodError)。
我尝试在 while 循环中使用 break 而不是 end 并得到相同的结果。我不知道 ruby 中的什么导致此方法无法被识别。
def trial_division(n)
a = []
while n % 2 == 0
a.push(2)
n /= 2
f = 3
end
while f * f < n
if n % f == 0
a.push(f)
n /= f
else
f += 2
end
end
if n != 1
a.push(n)
end
puts a
end
我想让程序找到一个数的质因数并显示数组。
【问题讨论】:
标签: ruby