分解质因数(5.17重写)

搅和一下,似乎/^\d+0+0$/也不全对,至少没法匹配“10”,是不是用/^\d0+$/就行了?
ps:很喜欢楼主循序渐进的文章,要多努力啊
引用:
原帖由 bbschat 于 2008-1-16 00:51 发表
不得不说,楼主的正则用错了,应该是 /^\d+0+0$/
/^\d+0?0$/ 会匹配所有末尾带0的多位数,比如1010...
你的实现里头同一个v, g(v)调用了三次,恐怕有效率问题吧
虽说ruby不强调效率,但如此浪费CPU有欠不妥
引用:
原帖由 bbschat 于 2008-1-16 00:51 发表
不得不说,楼主的正则用错了,应该是 /^\d+0+0$/
/^\d+0?0$/ 会匹配所有末尾带0的多位数,比如1010

顺便放上我的答案


 def g(x)
  2.upto((x ** 0.5).ceil){|i| return i if x%i == 0}
  return x
...