若两个连续自然数的乘积减1是素数,则称该素数是和谐素数。用c++编写程序求[2,50]区间内所有和谐素数之和。
时间: 2024-11-17 14:29:00 浏览: 7
和谐素数是指两个连续自然数相乘再减去1得到的素数。要编写一个C++程序找出给定范围内的和谐素数并计算它们的和,我们可以使用嵌套循环遍历这个区间,然后检查每个连续对是否符合条件。以下是简单的代码示例:
```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;
}
// 检查当前数n是否是和谐素数
bool isHarmoniousPrime(int n, int prev) {
return isPrime(n * prev - 1);
}
// 主函数,计算并输出和谐素数之和
int main() {
const int lowerBound = 2;
const int upperBound = 50;
vector<int> harmoniousPrimes;
for (int i = lowerBound; i < upperBound; i++) {
if (isHarmoniousPrime(i, i - 1)) {
harmoniousPrimes.push_back(i * (i - 1) - 1); // 添加到结果列表
}
}
int sum = 0;
for (const auto& prime : harmoniousPrimes) {
sum += prime;
}
cout << "和谐素数之和为:" << sum << endl;
return 0;
}
```
阅读全文