输出[a,b]区间内所有素数,输出格式为10个素数一行,素数间以一个空格分隔,一行最后一个素数之后没有空格。编写函数判断一个数是否为素数,主函数调用此自定义函数完成题目要求。c++
时间: 2023-12-10 13:39:20 浏览: 83
以下是实现代码:
```c++
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int a, b, cnt = 0;
cin >> a >> b;
for (int i = a; i <= b; i++) {
if (isPrime(i)) {
cnt++;
cout << i;
if (cnt % 10 == 0 || i == b) cout << endl;
else cout << " ";
}
}
return 0;
}
```
首先定义一个 `isPrime` 函数,用于判断一个数是否为素数。判断方法是从 2 开始到该数的平方根遍历,如果存在一个因子,则该数不是素数。
然后在主函数中输入区间的上下界,遍历这个区间内的所有数,如果是素数则按照题目要求输出。具体来说,用一个变量 `cnt` 记录当前已经输出了多少个素数,每输出一个素数就将 `cnt` 加一,当 `cnt` 能被 10 整除或者已经到了区间的右边界时就换行,否则以空格分隔。
注意,题目要求输出的是区间 `[a,b]` 内的所有素数,因此在循环的时候应该包含边界值 `a` 和 `b`。
阅读全文