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时,我们就没有必要再将循环执行下去了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值