给定一个数字, 任务是使用Bash脚本查找给定的数字是否为质数。
例子:
Input: N = 43
Output: Prime
Input: N = 35
Output: Not Prime
质数:
质数是大于1的整数,只能被1和它本身整除。前几个素数是:23 5 7 11 13 17 19 23 .....
![Bash程序检查Number是否为质数1](https://www.lsbin.com/wp-content/uploads/2021/04/prime.png)
方法:
我们运行一个从2到number / 2的循环, 并检查是否有任何数字因素。如果发现任何因素, 则该数字为合成数, 否则为质数。
实现
#storing the number to be checked
number=43
i=2
#flag variable
f=0
#running a loop from 2 to number/2
while test $i - le ` expr $number /2`
do
#checking if i is factor of number
if test ` expr $number % $i` - eq 0
then
f=1
fi
#increment the loop variable
i=` expr $i + 1`
done
if test $f - eq 1
then
echo "Not Prime"
else
echo "Prime"
fi
输出如下:
Prime