c++生成求两个数之间所有的质数。提示使用者输入2个整数。如果两个整数相等,要求重新输入。如果两个整数相差10000以上,提示可能会花费较长的计算时间。询问用户是否重新输入,重新输入键入“Y”,不重新输入键入“N”,其它输入无效,并再次询问。之后求使用者输入的2个整数之间的所有质数,并显示出来,完成后统计质数的数量。
时间: 2023-04-11 07:00:41 浏览: 92
好的,我可以回答这个问题。以下是代码:
```
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int num1, num2;
do {
cout << "请输入两个整数(用空格隔开):" << endl;
cin >> num1 >> num2;
if (num1 == num2) {
cout << "两个数相等,请重新输入!" << endl;
continue;
}
if (abs(num1 - num2) >= 10000) {
char choice;
cout << "两个数相差较大,可能会花费较长的计算时间,是否重新输入?(Y/N)" << endl;
cin >> choice;
if (choice == 'Y' || choice == 'y') continue;
else break;
}
break;
} while (true);
int count = 0;
cout << num1 << "和" << num2 << "之间的质数有:" << endl;
for (int i = min(num1, num2); i <= max(num1, num2); i++) {
if (isPrime(i)) {
cout << i << " ";
count++;
}
}
cout << endl << "质数的数量为:" << count << endl;
return 0;
}
```
希望能帮到你!
阅读全文