用c++写所谓“双质数”是指对于两个质数p和q,如果满足p = q + 2,则p和q为双质数。 请编程实现利用函数求解闭区间[m, n]之间的双质数,其中m和n均为正整数且m < n。
时间: 2023-06-17 15:02:04 浏览: 115
以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
// 判断一个数是否为质数
bool isPrime(int n) {
if (n <= 1)
return false;
int sqr = sqrt(n);
for (int i = 2; i <= sqr; i++) {
if (n % i == 0)
return false;
}
return true;
}
// 找出 m 到 n 之间的双质数
void findTwinPrimes(int m, int n) {
for (int i = m; i + 2 <= n; i++) {
if (isPrime(i) && isPrime(i + 2))
cout << i << " " << i + 2 << endl;
}
}
int main() {
int m, n;
cout << "请输入区间[m, n]的m和n:" << endl;
cin >> m >> n;
cout << "区间[" << m << ", " << n << "]内的双质数有:" << endl;
findTwinPrimes(m, n);
return 0;
}
```
先定义一个函数 `isPrime` 判断一个数是否为质数,再定义一个函数 `findTwinPrimes` 找出 m 到 n 之间的双质数,最后在 `main` 函数中输入区间并输出结果。