linxus里用case语句判断1-20以内哪些是质数哪些是合数
时间: 2024-09-26 21:11:19 浏览: 20
在Linux shell脚本中,你可以使用case语句配合循环结构来判断1到20之间的数字是否为质数或合数。首先,我们需要明确质数是只有两个正因数(1和它本身)的大于1的自然数,而合数则是除了1和它自身以外还有其他因数。
下面是一个简单的bash脚本示例:
```bash
#!/bin/bash
for num in {1..20}
do
case $num in
2|3) echo "$num是质数" ;;
*) factors=()
for i in `seq 2 $(($num - 1))`
do
if [ $(($num % $i)) == 0 ]
then
factors+=("$i")
fi
done
if [ ${#factors[@]} -eq 1 ]; then
echo "$num是质数"
else
echo "$num是合数,因子有${factors[*]}"
fi
;;
esac
done
```
这个脚本会依次遍历1到20的数字,对每个数字进行判断。如果是2或3,则直接输出是质数;对于其他数字,它会检查是否有除1和其本身外的因子,如果有就说明是合数,并列出所有因子。