编写一个判断素数的函数名字为sushu,在主函数调用此函数, 实现输出100-200之间的素数。
时间: 2023-06-05 20:47:47 浏览: 136
好的,以下是代码实现:
```python
def sushu(num):
"""
判断一个数是否为素数
"""
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
# 主函数
if __name__ == '__main__':
for i in range(100, 201):
if sushu(i):
print(i)
```
运行结果:
```
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
```
相关问题
设计一个Shell程序,首先定义一个判断素数的函数sushu(),并调用该函数计算100---200之间所有素数的和,并输出结果
以下是一个简单的Shell程序,用于计算100到200之间所有素数的和:
```shell
#!/bin/bash
# 定义一个函数,用于判断一个数是否为素数
function sushu() {
local num=$1
for ((i=2; i<=$num/2; i++))
do
if [ $(($num%i)) -eq 0 ]
then
return 1 # 不是素数,返回1
fi
done
return 0 # 是素数,返回0
}
# 计算100到200之间所有素数的和
sum=0
for ((j=100; j<=200; j++))
do
sushu $j
if [ $? -eq 0 ] # 如果是素数
then
sum=$(($sum+$j)) # 累加到sum中
fi
done
# 输出结果
echo "100到200之间所有素数的和为:$sum"
```
该程序首先定义了一个判断素数的函数`sushu()`,然后在主程序中使用循环来遍历100到200之间的所有整数,并调用`sushu()`函数来判断它们是否为素数。如果是素数,则将其累加到`sum`变量中。最后,输出结果。
void sushu(intmintn) 输出m---n中的所有素数,每5个输出在一行
以下是一个实现该功能的 C++ 代码:
```cpp
#include <iostream>
using namespace std;
bool is_prime(int n) {
if (n < 2) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
void sushu(int m, int n) {
int cnt = 0;
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
cout << i << " ";
cnt++;
if (cnt % 5 == 0) cout << endl;
}
}
if (cnt % 5 != 0) cout << endl;
}
int main() {
int m, n;
cin >> m >> n;
sushu(m, n);
return 0;
}
```
该程序首先定义了一个判断素数的函数 `is_prime`,然后在 `sushu` 函数中遍历 `m` 到 `n` 之间的所有整数,对于每个素数,输出它并计数,每输出 5 个素数就换行。最后,如果最后一行不足 5 个素数,也要换行。在 `main` 函数中读入 `m` 和 `n`,并调用 `sushu` 函数输出素数。