【发布时间】:2020-10-03 17:29:35
【问题描述】:
这个 shell 脚本程序有什么问题? 该程序是关于在给定的数字范围内查找素数。但是当我给出 20 到 100 的范围时,它也会将一些数字(如 25,77 等)显示为素数。但是当我给出的范围为 20 到30 然后它不会将 25 显示为素数。当输入大小很大时,似乎嵌套的 for 循环正在并行运行。
代码如下:
read -p "Enter a Range of number (a to b) : " a b
echo "Prime numbers in the given range are :"
for ((i=$a;i<=$b;i++))
do
max1=`echo | awk "{print sqrt($a)}"`
max2=`printf %.0f "$max1"`
maxCap=$max2
check=0
for (( j=2;j<=$maxCap;j++ ))
do
if [ $(($i%$j)) -eq 0 ]
then
check=1;
break;
fi
done
if [ $check -eq 0 ]
then
echo -n "$i "
fi
done
【问题讨论】:
-
它不是显示25作为素数吗?真的是你的意思吗?
标签: linux shell unix git-bash windows-subsystem-for-linux