//形如2^n-1的素数被称为梅森素数
#include<iostream>
#include<math.h>
using namespace std;
long meisensushu(int n)
{
long m=1;
for (int i = 1;i <=n; i++)
{
m *= 2;
}
long a = m - 1;
return a;
}
int main()
{
cout << "寻找0到100亿以内的梅森素数" << endl;
int k;
for( k=2;1;k++)
{
while (meisensushu(k) < 10000000000)
{
double b = sqrt(meisensushu(k)); int i;
for (i = 2; i <= b; i++)
if (meisensushu(k) % i == 0)
break;
if (i > b)
cout << meisensushu(k) << endl;
break;
}
}
return 0;
}
结果如下: