梅森素数是指等于2的整数次幂减1的素数。
例如:7是梅森素数,它等于2的3次方减1。
输出格式:7=2^3-1
示例程序为输出100以内的梅森素数。
源程序:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
int msprime(int m)
{
int i=2,k,p;
while(i<=m&&(m%i))
i++;
if(m==i)//判断素数
{
for(k=1;;k++)
{
p=pow(2,k)-1;
if(p>m)
break;
else if(p==m)
return k;
}
}
return 0;
}
int main()
{
int m,k;
for(m=2;m<=100;m++)
if (k=msprime(m))
printf("%d=2^%d-1\n",m,k);
return 0;
}
Dev-C++运行结果: