primers = []
for i in 2...100
primers << i if primers.all?{|prime| i % primer != 0}
end
p primers作者: 小湖 时间: 2010-12-13 23:25
求质数的算法不是循环除数,直到自己的开方么……作者: px.凤翔九天 时间: 2010-12-13 23:27 本帖最后由 px.凤翔九天 于 2010-12-13 23:28 编辑
hysgdtc于2010-12-13 23:48补充以下内容:
晕,我写贴的时候怎么没看到5楼....作者: 沙漠点灰 时间: 2010-12-14 17:48
lz的麻烦...2l的....是思路还是片段?运行错误...
一:
count = 0
array = []
for i in 2..100
flag = true
for ii in 2...i
flag = false if i % ii == 0
count += 1
end
array.push(i) if flag
end
p array
p "共循环#{count}次"
循环4851次
二:
count = 0
array = [2]
for i in 1...50
i = i * 2 + 1
flag = true
for ii in 2..Math.sqrt(i).to_i
if i % ii == 0
flag = false
break
end
count += 1
end
array.push(i) if flag
end
p array
p "共循环#{count}次"
循环162次
三:
count = 0
array = [2]
for i in 1...50
i = i * 2 + 1
flag = true
for arr in array
temp = Math.sqrt(i)
if i % arr == 0
flag = false
break
else
if temp < arr
break
end
end
count += 1
end
array.push(i) if flag
end
p array
p "共循环#{count}次"
循环107次