Bash 程序检查数字是否为质数
给定一个数字,任务是使用 Bash 脚本查找给定的数字是否为质数。
例子:
Input: N = 43
Output: Prime
Input: N = 35
Output: Not Prime
质数:
质数是大于1的整数,它只能被 1 和它本身整除。前几个素数是:2 3 5 7 11 13 17 19 23 .....
方法:
我们运行一个从 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