Shell脚本编程:求100内的质数 ?
参考答案:
在Shell脚本中,你可以使用以下脚本来找出100以内的所有质数:
#!/bin/bash
# 函数,用于检查一个数是否为质数
is_prime() {
local num=$1
if [ $num -lt 2 ]; then
return 1
fi
for ((i=2; i*i<=num; i++)); do
if [ $((num%i) -eq 0 ]; then
return 1
fi
done
return 0
}
# 遍历1到100,找出所有质数
for num in {2..100}; do
is_prime $num
if [ $? -eq 0 ]; then
echo $num
fi
done
这个脚本首先定义了一个is_prime
函数,该函数接受一个数字作为输入,并检查这个数字是否为质数。如果数字小于2,或者能被2到其平方根之间的任何数字整除,那么它就不是质数。函数返回0表示输入的数字是质数,返回1表示不是。
然后,脚本遍历2到100之间的所有数字,对每个数字调用is_prime
函数。如果函数返回0(即数字是质数),那么就打印出这个数字。
注意,这个脚本使用了Bash的算术扩展($((...))
)和条件表达式([ ... ]
)。如果你的Shell环境不支持这些特性,你可能需要稍微修改一下脚本。
你可以将这个脚本保存为一个.sh
文件,比如prime_numbers.sh
,然后使用bash prime_numbers.sh
命令来运行它。在运行之前,你可能需要给这个文件添加执行权限,可以使用chmod +x prime_numbers.sh
命令来添加。