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

2980

被折叠的 条评论
为什么被折叠?



