2008-04-21
求50以内的素数
#
for i in 2..50 #50以内
f=true #起始假定每个数都是素数
for p in 2...i #比自身小的正整数(1和自身除外)
if i%p==0 #如果能整除
f=!f #那么这个数不是素数
break #并且跳出这层循环
end # if 结束
end #内层循环结束
print i," " if f #如果这个数保持起始假定,则打印
end #外层循环结束
print "\n"
$arr=[ ] #建立一个全局数组 $arr
$arr[0]=2
def add_prime(n) #定义方法 将 n以内的奇素数加入$arr
3.step(n,2){|num|$arr <<num if is_prime?(num) }
end
def is_prime?(number) #定义方法 判断一个数是否是素数
j=0 #数组下标
while $arr[j] * $arr[j] <=number
return false if number % $arr[j] ==0
j +=1
end
return true
end
add_prime(50)
print $arr.join(", "),"\n" #转换成字符串输出
发表评论
- 浏览: 16957 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
我的相册
2008-6-26
共 122 张
共 122 张
最近加入圈子
最新评论
-
js实现的年月日三级联动
日历来的更简洁,让用户操作三遍,不符合用户体验。
-- by igogo007 -
js实现的年月日三级联动
谢谢了,代码我收藏了啊
-- by hanhan7673 -
word提示用安全模式打开
...
-- by sunfengcheng -
别了,盖茨
我在喝水。。。
-- by 叶子 -
创建XMLHttpRequest对象及 ...
谢谢楼主了....
-- by fp2009






评论排行榜