1. 程式人生 > >## 7-9 梅森數 (20 分)

## 7-9 梅森數 (20 分)

7-9 梅森數 (20 分)

形如2^ ​n ​​ −1的素數稱為梅森數(Mersenne Number)。例如2^ ​2 ​​ −1=3、2^ ​3 ​​ −1=7都是梅森數。1722年,雙目失明的瑞士數學大師尤拉證明了2^ ​31 ​​ −1=2147483647是一個素數,堪稱當時世界上“已知最大素數”的一個記錄。

本題要求編寫程式,對任一正整數n(n<20),輸出所有不超過2^ ​n ​​ −1的梅森數。

輸入格式:

輸入在一行中給出正整數n(n<20)。

輸出格式:

按從小到大的順序輸出所有不超過2^ ​n ​​ −1的梅森數,每行一個。如果完全沒有,則輸出“None”。

#include<stdio.h>
#include<math.h>
int main()
{
  int b,c=0,d=0,n,i;
  scanf("%d",&n);
  if(n==1)
  printf("None");
  for(b=2;b<=n;b++)
 { c=pow(2,b)-1;
  for(i=2;i<c;i++)
  {
    if(c%i==0)
    {
      d=1;
      break;
    }

  }
      if(d==0)
    printf("%d\n",c);
    d=0;
 }
  return 0;
}