首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

刚刚学linux的shell编程 新手不懂。求指点

2012-12-30 
刚学linux的shell编程 新手不懂。求指点输出1-100的质数,#!/bin/bashread hfor ((i1i$hi++))dofor ((j

刚学linux的shell编程 新手不懂。求指点
输出1-100的质数,
#!/bin/bash
read h
for ((i=1;i<=$h;i++))
do
for ((j=2;j<$i;j++))
do
if [ $[$i % $j ] -eq 0 ]
then flag=1
else
flag=0
fi 
done
if [ $flag -eq 0 ]
then echo $i
fi
done
怎么不对啊,求指点啊、、、
[解决办法]
C 写 工具,然后用 脚本调用他
[解决办法]


#!/bin/bash
read h
for ((i=1;i<=$h;i++))
do
flag=0
for ((j=2;j<$i;j++))
do
if [ $[$i % $j ] -eq 0 ]
then flag=1
fi
done
if [ $flag -eq 0 ]
then echo $i
fi
done

[解决办法]

for ((i=1;i<=$h;i++))
改为for ((i=2;i<=$h;i++))

[解决办法]

#!/bin/bash

read h

for ((i=1; i<=$h; ++i))
do
    flag=0
    for ((j=2; j<=i/2; ++j))
    do
        if [ $[$i % $j] -eq 0 ]; then
            flag=1
        fi
    done
    if [ $flag -eq 0 ]; then
        echo $i
    fi
done


输出:

# bash prime_number.sh
100
1
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

[解决办法]
前面加个
set -x
shell调试模式,只能帮你到这里了。
[解决办法]
为啥要用shell搞这么麻烦的玩意?
我的处理方法是:麻烦到一定程度一律用perl。

热点排行