输出区间内所有质数(函数实现) 题目描述: 输出区间[a, b]内所有质数,a和b都是整数,1<a<=b<10000。要求用函数实现。 输入描述: 输入占一行,为两个正整数a和b,用空格隔开。 输出描述: 输出区间[a, b]内的所有质数,每个质数占一行
时间: 2024-11-17 17:30:34 浏览: 24
为了实现这个功能,我们可以创建一个C++函数,该函数接受两个参数`a`和`b`,然后遍历这个区间,检查每个数字是否为质数。以下是一个简单的函数实现:
```cpp
#include <iostream>
// 判断一个数是否为质数的辅助函数
bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) return false;
}
return true;
}
// 主函数,输出指定区间内的所有质数
void printPrimesInRange(int a, int b) {
std::cout << "质数在区间 [" << a << ", " << b << "] 内有:" << std::endl;
for (int i = a; i <= b; ++i) {
if (isPrime(i)) {
std::cout << i << std::endl;
}
}
}
int main() {
int a, b;
std::cin >> a >> b;
// 检查输入范围是否符合要求
if (a > 1 && a <= b && b < 10000) {
printPrimesInRange(a, b);
} else {
std::cerr << "错误:请输入1到9999之间的整数区间的两个数。" << std::endl;
}
return 0;
}
```
在这个代码中,`isPrime`函数用于检查一个给定的数是否为质数,`printPrimesInRange`函数则遍历指定区间并打印出所有的质数。如果输入的a或b超出了限制范围,主函数会显示错误信息。
阅读全文