Bash程序检查Number是否为质数

2021年4月9日16:57:40 发表评论 904 次浏览

给定一个数字, 任务是使用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

方法:

我们运行一个从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

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: