c+语言任意输入两个2000 (含)以内的正整数,找出这两个正整数之间的质数,统计数量,并按照每行10个输出
时间: 2024-11-06 13:24:42 浏览: 17
在 C++ 中,为了实现这个功能,你可以首先创建一个 `countAndPrintPrimes` 函数,该函数接收两个正整数作为参数,然后遍历这两个数字之间的所有数,检查每个数是否为质数,并统计质数数量。当质数数量达到10或者遍历完所有数后,就打印出前10个质数。以下是代码实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 判断一个数是否为质数
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;
}
// 打印质数列表(每行10个)
void printPrimes(vector<int>& primes, int limit) {
for (int i = 0; i < primes.size(); i += 10) {
for (int j = 0; j < min(10, primes.size() - i); ++j) {
cout << primes[i + j] << " ";
}
cout << "\n";
}
}
int main() {
int num1, num2;
cout << "请输入两个0-2000之间的正整数:";
cin >> num1 >> num2;
// 确保两个数都在指定范围内
num1 = min(num1, 2000);
num2 = min(num2, 2000);
vector<int> primes;
int count = 0;
// 遍历范围,找出质数并计数
for (int i = num1; i <= num2; ++i) {
if (isPrime(i)) {
primes.push_back(i);
count++;
}
if (count >= 10 || i == num2) { // 达到每行10个或者已到达上限
printPrimes(primes, num1);
primes.clear();
count = 0;
}
}
// 打印剩下的质数
if (!primes.empty()) {
printPrimes(primes, num1);
}
return 0;
}
```
运行这段代码后,用户可以输入两个0到2000之间的正整数,程序会在满足条件的情况下,按每行10个的方式输出质数及对应的数量。
阅读全文