用shell编程,写一个筛出10001--20000范围内的质数的程序,可以用FOR循环

回复 收藏
质数是指:在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数

#!/bin/sh
for((i=10000;i<=12000;i++))
do
        for((k=2;k<=i;k++))
        do
                if [ $k -eq $i ]
                then
                        echo "$i su shu"
                        break

                fi
                if [ $(($i%k)) -eq 0 ]
                then break
                fi
        done
done
2011-05-16 16:09 举报
已邀请:
0

阿铭 管理员

赞同来自:

看不太懂这逻辑,麻烦楼上的解释一下。
0

m.chang

赞同来自:

阿铭 发表于 2011-5-17 08:45
看不太懂这逻辑,麻烦楼上的解释一下。

同样不解
0

maria

赞同来自:


{:6_137:}很简单啊,
if [ $(($i%k)) -eq 0 ]
如果能被大等于2小于i的数整除就说明不是素数,退出当前循环,i加1继续循环
if [ $k -eq $i ]
如果只能被i本身整除,说明他是素数。
0

m.chang

赞同来自:

maria 发表于 2016-2-28 15:50
很简单啊,
if [ $(($i%k)) -eq 0 ]
如果能被大等于2小于i的数整除就说明不是素数,退出当前 ...

{:6_146:}, 是非常的简单, 多谢你,马瑞哥。

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: