用C语言编译:求n < 20的梅森素数
时间: 2023-06-10 13:04:36 浏览: 68
好的,对于求n < 20的梅森素数,可以使用以下代码:
```
#include <stdio.h>
#include <math.h>
int main()
{
int n = 20; // 求n < 20的梅森素数
int i, j, a;
printf("梅森素数:");
for(i = 2; i <= n; i++) {
a = pow(2, i) - 1;
for(j = 2; j <= sqrt(a); j++) {
if(a % j == 0) break;
}
if(j > sqrt(a)) printf("%d ", a);
}
return 0;
}
```
这段代码使用了循环语句和条件语句,在运行时会输出所有的小于20的梅森素数。其中,梅森素数指的是某个素数p对应的2^p-1也是素数的数,例如p=3时,2^3-1=7是一个素数,因此7是一个梅森素数。
相关问题
输出指数 n<20 的所有梅森尼数的C语言代码
梅森尼数是形如 $M = 2^n - 1$ 的质数,其中 $n$ 为正整数。以下是输出指数 $n<20$ 的所有梅森尼数的C语言代码:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
for (int n = 2; n < 20; n++) {
int m = pow(2, n) - 1;
if (is_prime(m)) {
printf("%d\n", m);
}
}
return 0;
}
```
在这段代码中,函数 `is_prime` 用于判断一个数是否为质数,使用了简单的质数判断方法。主函数中使用循环计算所有 $n<20$ 的梅森尼数,如果该数是质数,则输出。
n<20 的所有梅森尼数
梅森尼数是指形如 $2^p-1$ 的质数,其中 $p$ 也是一个质数。目前已知的梅森尼数只有少数几个,其中 $p$ 的取值分别为 2、3、5、7、13、17、19、31、61 和 89。其中 $p$ 不超过 20 的梅森尼数有:
$2^2-1=3$
$2^3-1=7$
$2^5-1=31$
$2^7-1=127$
$2^{13}-1=8191$
$2^{17}-1=131071$
$2^{19}-1=524287$