Shell脚本实现判断一个数是否为质数

Shell脚本实现判断一个数是否为质数

话不多少,上代码。

#!/bin/bash
read -p "请输入一个数:" num  //用户自己输入一个数
if [ $num -le 0 ]           //判断这个数是否小于0
  then                      
      echo "您输入的数为负数或0"     //echo提示用户
elif [ $num -eq 1 ]               //判断这个数是否为1和2 
  then                             
      echo "$num不是质数"
elif [ $num -eq 2 ]
  then
      echo "$num你是质数"
else                               //当输入的数是正整数时
  for ((i=2;i<$num;i++))           
      do
          if [ $(($num%i)) -eq 0 ]  //判断这个数与i取余是否等于0
            then
               [ $num -ne $(($num%i)) ] && echo "$num不是质数" && break  
          else
               if [ $i -gt $(($num/2)) ]
                 then
                     echo "$num是质数" && break
               fi
          fi
      done

fi

说明:

质数就是指只能被自己整除的数。1既不是质数也不是合数。2是质数,同时2也是唯一的一个偶数质数,除了2以外的质数都是奇数质数。10以内的质数有2、3、5、7,100以内的质数有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。

质数的概念所谓质数或称素数,就是一个正整数,除了本身和1以外并没有任何其他因子。例如2,3,5,7是质数,而4,6,8,9则不是,后者称为合成数。从这个观点可将整数分为两种,一种叫质数,一种叫合成数。(有人认为数目字1不该称为质数)著名的高斯「唯一分解定理」说,任何一个整数。可以写成一串质数相乘的积。

其实当循环进入到我们所输入的数值的1/2时,我们就没有必要再将循环执行下去了。

你可能感兴趣的:(shell脚本,shell脚本,运维基础)