我试图在ruby中生成一个完整的nos b / w 1-100列表 . 我最初通过一种效果很好的迭代方法完成了这项工作 .
require 'prime'
def Primenos(n)
Prime.prime?(n)
end
def f1
(1..100).collect do |e|
if Primenos(e)
then p "this is prime - #{e}"
end
end
end
f1
但我还想知道这是否可以递归完成?任何的想法?
2 回答
你可以修改你的函数来接收一个值为1的默认参数
n
,从你的范围((1..100)
)开始,然后在方法内,如果n
等于或大于100则返回,之后,使用p
打印素数编号,再次调用f1
,这次将n
加1:其他选择:
打印出来: