shell 质数

输出2 到100 内的质数

lan@lan_ubuntu:~/桌面/program/课本$ cat PrintPrime.sh
#!/bin/bash

#输出2-100之间的素数
i=2;
while [ $i -le 100 ] #控制外层循环的次数
do 
	j=2
	flag=1 #falg为1表示i是素数
	while [ $j -le `expr $i / 2` ] 	#当j小于或者等于 i的一般时
	do
	if [ `expr $i % $j` -eq 0 ] #如果找到一个i的因数j,那i就不是质数了
		then flag=0;break; #改标志,退出循环
	fi
	j=`expr $j + 1`  
 	done
	if [ $flag -eq 1 ]
	then 
		echo "${i} is a Prime "
	fi
	i=`expr $i + 1`
done
结果:

lan@lan_ubuntu:~/桌面/program/课本$ ./PrintPrime.sh
2 is a Prime 
3 is a Prime 
5 is a Prime 
7 is a Prime 
11 is a Prime 
13 is a Prime 
17 is a Prime 
19 is a Prime 
23 is a Prime 
29 is a Prime 
31 is a Prime 
37 is a Prime 
41 is a Prime 
43 is a Prime 
47 is a Prime 
53 is a Prime 
59 is a Prime 
61 is a Prime 
67 is a Prime 
71 is a Prime 
73 is a Prime 
79 is a Prime 
83 is a Prime 
89 is a Prime 
97 is a Prime 

对上面的代码加上输入,就可以求你小于n的质数了。

lan@lan_ubuntu:~/桌面/program/课本$ cat PrintPrime.sh
#!/bin/bash

#输出小于n的素数
read -p "输入n:" n
i=2;
while [ $i -le $n ]
do 
	j=2
	flag=1 #falg为1表示i是素数
	while [ $j -le `expr $i / 2` ] 	
	do
	if [ `expr $i % $j` -eq 0 ]
		then flag=0;break;
	fi
	j=`expr $j + 1`
	done
	if [ $flag -eq 1 ]
	then 
		echo "${i} is a Prime "
	fi
	i=`expr $i + 1`
done
结果:

lan@lan_ubuntu:~/桌面/program/课本$ ./PrintPrime.sh
输入n:150
2 is a Prime 
3 is a Prime 
5 is a Prime 
7 is a Prime 
11 is a Prime 
13 is a Prime 
17 is a Prime 
19 is a Prime 
23 is a Prime 
29 is a Prime 
31 is a Prime 
37 is a Prime 
41 is a Prime 
43 is a Prime 
47 is a Prime 
53 is a Prime 
59 is a Prime 
61 is a Prime 
67 is a Prime 
71 is a Prime 
73 is a Prime 
79 is a Prime 
83 is a Prime 
89 is a Prime 
97 is a Prime 
101 is a Prime 
103 is a Prime 
107 is a Prime 
109 is a Prime 
113 is a Prime 
127 is a Prime 
131 is a Prime 
137 is a Prime 
139 is a Prime 
149 is a Prime 



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值