循环先判断指数是否为素数,再判断梅森数是否为素数。
#include <bits/stdc++.h>
using namespace std;
bool f(int x)
{
for(int i=2;i<=x/i;i++)
{
if(x%i==0)return false;
}
return true;
}
int main()
{
for(int i=2;i<=20;i++)
{
if(f(i))
{
int s=pow(2,i)-1;
if(f(s))cout<<s<<endl;
}
}
}