shell脚本实现1-100的所有素数的和
时间: 2024-10-13 19:06:24 浏览: 26
在shell脚本中计算1到100之间的所有素数之和,可以利用循环和条件判断来实现。这里是一个简单的步骤:
1. 定义一个函数`is_prime`,用于检查一个数是否是素数。素数只有两个正因子:1和它本身。
```bash
function 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
}
```
2. 初始化变量`sum`为0,用于存储素数的总和。
```bash
sum=0
```
3. 使用for循环遍历从2到100的所有数字,如果是素数,则将其加到`sum`上。
```bash
for ((num=2; num<=100; num++)); do
if is_prime $num; then
sum=$((sum + num))
fi
done
```
4. 最后打印出结果。
```bash
echo "1到100之间所有素数的和为: $sum"
```
将以上代码组合成一个完整的shell脚本文件,例如`prime_sum.sh`:
```bash
#!/bin/bash
# 定义素数检测函数
function 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
}
# 初始化并计算素数和
sum=0
for ((num=2; num<=100; num++)); do
if is_prime $num; then
sum=$((sum + num))
fi
done
# 输出结果
echo "1到100之间所有素数的和为: $sum"
# 执行脚本
sh prime_sum.sh
```
执行该脚本即可得到结果。
阅读全文