
#include<stdio.h>
#include<math.h>
int main(void)
{
int n,m,i,j,count=0; // count用来统计是否有梅森数
scanf("%d", &n);
for (i=2; i<=n; i++){ // 1 不是素数,故直接排除在梅森数的范围之内,i 从 2开始
m = pow(2,i) - 1;
for (j=2; j<=sqrt(m); j++){ //接下来即是前面所学的判断素数
if (m % j == 0)
break;
}
if (j > sqrt(m) ){
printf("%d\n", m);
count ++;
}
}
if (count == 0)
printf("None");
return 0;
}
先找出所有符合条件的梅森数,再判断其是不是素数。
不要先找出所有符合条件的素数,计算量太大。
本文介绍了一种通过C语言程序查找梅森素数的方法。梅森素数是一种特殊类型的素数,形式为2^p-1,其中p本身也是素数。文章详细解释了如何编写代码来生成潜在的梅森数并验证它们是否为素数。

7960

被折叠的 条评论
为什么被折叠?



