## 7-9 梅森數 (20 分)
阿新 • • 發佈:2018-12-17
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; }