用c++编程求前8个梅森素数
时间: 2024-05-04 18:19:18 浏览: 11
梅森素数是指形如 $2^p-1$ 的素数,其中 $p$ 也必须是素数。以下是求前 8 个梅森素数的 C++ 代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool is_prime(int n) {
if (n < 2) {
return false;
}
int sqrtn = sqrt(n);
for (int i = 2; i <= sqrtn; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int count = 0;
int p = 2;
while (count < 8) {
int m = pow(2, p) - 1;
if (is_prime(p) && is_prime(m)) {
cout << "M" << count + 1 << " = " << m << endl;
count++;
}
p++;
}
return 0;
}
```
这段代码中,我们首先定义了一个函数 `is_prime`,用于判断一个数是否为素数。接下来,在主函数中,我们使用一个计数器 `count` 和一个变量 `p`,从小到大枚举 $p$,并计算出对应的 $2^p-1$。如果 $p$ 和 $2^p-1$ 都是素数,则输出结果,并将计数器 `count` 加 1,直到输出了 8 个梅森素数。