MainPipe mp = ((TaskHost)p.Executables.Add("DTS.Pipeline")).InnerObject as MainPipe;
mp.AutoAdjustBufferSize = true;
答案 0 :(得分:2)
因为您从未输入each
。如果值为2,则(2..num/2)
变为(2..2/2)
,即(2..1)
。 Ruby的范围运营商不会倒退,因此没有任何东西可以让每个"每个"结束了。
答案 1 :(得分:0)
我相信,因为(num / 2)在这种情况下是1,所以循环永远不会运行,所以它会落到真实的'在底部。
答案 2 :(得分:0)
我认为您的方法正在工作:
puts prime?(2)
#=> true
正如评论中提到的那样,您还可以通过浏览号码的sqrt
来保存一些步骤:
(2..Math.sqrt(num)).each do |x|