/*找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。当p是素数并且Mp也是素数时,称Mp为默森尼数,
例如,p=5,Mp=2^5-1=31,5和31都是素数,因此31是默森尼数;而Mp=2^11-1=2047,11是素数,2047不是素数,因此2047不是默森尼数.
*/
#include <stdio.h>
#include <string.h>
#include <math.h>
int juge_prime(int num) //判断素数
{
int i = 2;
int flag = 0;
for(i = 2;i < num;i++)
{
if(num%i == 0)
{
break;
}
}
if(num == i)
{
flag = 1;
}
return flag;
}
int juge_mp(int m) //判断模森尼数
{
int mp = 0;
int flag = 0;
if(juge_prime(m) == 1)
{
mp = pow(2,m)-1;
if(juge_prime(mp) ==1)
{
flag = 1;
}
else
{
flag = -1;
}
}
else
{
flag = -1;
}
return flag;
}
int main()
{
int i = 0;
int count = 0;
int mp = 0;
for(i = 1;i < 10000;i++)
{
if(juge_mp(i) == 1)
{
mp = pow(2,i)-1;
printf("%d ",mp); //输出满足条件的数
mp = 0;
count++;
}
if(count == 7)
{
break;
}
}
printf("\n");
return 0;
}