linux shellfor循环运算质数,任意数内质数与其之和 shell 您所在的位置:网站首页 shell脚本判断质数 linux shellfor循环运算质数,任意数内质数与其之和 shell

linux shellfor循环运算质数,任意数内质数与其之和 shell

2024-07-16 02:57| 来源: 网络整理| 查看: 265

质数:(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整数(除0以外)的数称之为素数(质数);否则称为合数。

双圆括号:(( expression )) expression可以是任何的数字赋值表达式或者是数学表达式,如果是变量,在变量前面可以加$符号,也可以不加。双括号命令符号

符号

说明

符号

说明

var++

后增量

逐位右移

++var

前增量

&

逐位布尔逻辑与

--var

前减量

|

逐位布尔逻辑或

!

逻辑否定

&&

逻辑与

~

逐位取反

||

逻辑或

**

取幂

双方括号:[[ expression ]]字符串比较提供高级功能,双方括号里面的expression使用在test命令中使用的标准字符串比较,但是它提供了test命令没有的模式匹配功能。

[root@rhel6164 scripts]$ cat test.sh

#!/bin/bash

#using patern matching

if [[ $(ls $(pwd)) == p* ]];then #模式匹配

echo "pattern success"

else

echo "pattern fail"

fi

脚本:

[root@rhel6164 scripts]$ cat prime.sh

#!/bin/bash

function primef #定义函数,这里把输出质数和求质数之和都放到primef函数里面完成

{

var=$1_ #防止$1没有赋值,会赋值没有初始化的变量给var

var=${var/_/} #去掉多余的下划线( _ )

sum=0

i=1

while [ $i -le $var ];do #这里使用了[,这个命令[为test的bash的内建命令

bool=1 #初始化标志

for (( j=2; $j

{

if [ $(($i%$j)) -eq 0 ];then #这里也使用了双圆括号求值,在双圆括号里面的操作数可以加上$,也可以不加,后面就没有加上

bool=0

break

fi

}

done

if [ $bool -eq 1 ];then

echo -n "$i "

sum=$((sum+i))

fi

#i=$((i+1))

i=$(expr $i + 1) #用expr命令求值,注意两个操作数之间要有空格

done

echo

echo -n "the sum of prime($var) is $sum"

}

echo -n "Please input one integer:"

read varint

primef $varint

echo

运行:

[root@rhel6164 scripts]$ bash prime.sh

Please input one integer:10

1 2 3 5 7

the sum of prime(10) is 18



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有