go語言梅森素數(shù),go語言判斷素數(shù)

c語言求梅森素數(shù)程序如下,為什么輸出是0?

#include stdio.h

廬陽網(wǎng)站建設公司創(chuàng)新互聯(lián)建站,廬陽網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為廬陽上千多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的廬陽做網(wǎng)站的公司定做!

#define true 1

#define false 0

long isprime(int n);

long mypow(int m, int n);

int main()

{

int n,a;

for(n=2;n20;n++)

{

a = mypow(2,n)+1;

if(isprime(n)isprime(a))

{

printf("%d是梅森素數(shù)\n", a);

}

}

return 0;

}

long mypow(int m, int n) {

long ans = 1;

int i = 0;

for (; i n; i++) {

ans *= m;

}

return ans;

}

long isprime(int n) {

int x = 0;

if (n 2) return false;

if (n == 2|| n==3) {

return true;

}

// 6x 6x+1 6x+2 6x+3 6x+4 6x+5

// 6x+2 = 2(3x+1)

// 6x+3 = 3(2x+1)

// 6x+4 = 2(3x+2)

if (n % 6 != 1 n % 6 != 5) {

return false;

}

for (x = 5; x * x = n; x += 6) {

if (n % x == 0 || n % (x+2) == 0) {

return false;

}

}

return true;

}

馬林·梅森的梅森素數(shù)

形如2^p-1的正整數(shù),其中p是素數(shù),常記為Mp 。若Mp是素數(shù),則稱為梅森素數(shù)。梅森素數(shù)貌似簡單,而研究難度卻很大。它不僅需要高深的理論和純熟的技巧,而且需要進行艱巨的計算。即使屬于“猜測”部分中最小的M31=2147483647,也具有10位數(shù)。可以想象,它的證明是十分艱巨的。正如梅森推測:“一個人,使用一般的驗證方法,要檢驗一個15位或20位的數(shù)字是否為素數(shù),即使終生的時間也是不夠的。

迄今為止,人類僅發(fā)現(xiàn)48個梅森素數(shù)。由于這種素數(shù)珍奇而迷人,它被人們稱為“數(shù)學珍寶”。梅森素數(shù)歷來是數(shù)論研究的一項重要內(nèi)容,也是當今科學探索的熱點和難點之一。

值得一提的是:在梅森素數(shù)的基礎研究方面,法國數(shù)學家魯卡斯和美國數(shù)學家雷默都做出了重要貢獻;以他們命名的“魯卡斯-雷默方法”是目前已知的檢測梅森素數(shù)素性的最佳方法。此外,中國數(shù)學家和語言學家周海中給出了梅森素數(shù)分布的精確表達式,為人們尋找梅森素數(shù)提供了方便;這一研究成果被國際上命名為“周氏猜測”。

編寫一個程序求所有p

程序:

#include?stdio.h

int?prime(unsigned?long?v)

{

unsigned?long?i;

for(i?=?3;?i?=?v/2;?i?+=2)

if(v?%?i?==?0)?return?0;

return?1;

}

int?main()

{

int?i;

unsigned?long?v;

printf("p\t2^p-1\n");

for(i?=?2;?i??32;?i?++)

{

v?=?(1i)-1;

if(prime(v))

printf("%d\t%lu\n",i,?v);

}

return?0;

}

輸出

p ? ? ? 2^p-1

2 ? ? ? 3

3 ? ? ? 7

5 ? ? ? 31

7 ? ? ? 127

13 ? ? ?8191

17 ? ? ?131071

19 ? ? ?524287

31 ? ? ?2147483647

完全數(shù)的梅森素數(shù)

古希臘數(shù)學家歐幾里得在名著《幾何原本》中證明了素數(shù)有無窮多個,并論述完全數(shù)時提出:如果2^P-1是素數(shù)(其中指數(shù)P也是素數(shù)),則2^(P-1)(2^P-1)是完全數(shù)。瑞士數(shù)學家和物理學家歐拉證明所有的偶完全數(shù)都有這種形式。因此,人們只要找到2^P-1型素數(shù),就可以發(fā)現(xiàn)偶完全數(shù)了。數(shù)學界將2^P-1型素數(shù)稱為“梅森素數(shù)”(Mersenne prime),因為法國數(shù)學家和法蘭西科學院奠基人梅森在這方面的研究成果較為卓著。梅森素數(shù)貌似簡單,但探究難度卻極大。它不僅需要高深的理論和純熟的技巧,而且還需要進行艱巨的計算。到2013年2月6日為止,人類僅發(fā)現(xiàn)48個梅森素數(shù)。

值得提出的是:在梅森素數(shù)的基礎研究方面,法國數(shù)學家魯卡斯和美國數(shù)學家雷默都做出了重要貢獻;以他們命名的“魯卡斯-雷默方法”是目前已知的檢測梅森素數(shù)素性的最佳方法。此外,中國數(shù)學家和語言學家周海中給出了梅森素數(shù)分布的精確表達式,為人們尋找梅森素數(shù)提供了方便;這一研究成果被國際上命名為“周氏猜測”。 1……6

2……28

3……496

4……8,128

5……33,550,336

6……8,589,869,056

7……137,438,691,328

8……2,305,843,008,139,952,128

9……2,658,455,991,569,831,744,654,692,615,953,842,176

10……191,561,942,608,236,107,294,793,378,084,303,638,130,997,321,548,169,216

11……13,164,036,458,569,648,337,239,753,460,458,722,910,223,472,318,386,943,117,783,728,128

12……14,474,011,154,664,524,427,946,373,126,085,988,481,573,677,491,474,835,889,066,354,349,131,199,152,128

……

……

47 ……2^42643800 X (2^42643801-1)

48 ……2^57885160 X (2^57885161-1)

由于后面數(shù)字位數(shù)較多,例子只列到12個,第13個有314位。

到第39個完全數(shù)有25674127位數(shù),據(jù)估計它以四號字打出時需要一本字典大小的書。

盧卡斯數(shù)列驗證梅森素數(shù)的證明

梅森數(shù)(Mersenne number)是指形如2^p-1的正整數(shù),其中指數(shù)p是素數(shù),常記為Mp 。若Mp是素數(shù),則稱為梅森素數(shù)(Mersenne prime)。

而盧卡斯數(shù)有:1, 3, 4, 7, 11, 18, 29, 47, 76, 123, ...... (OEIS A000204),當中的平方數(shù)只有 1 和 4,這是由哥恩 (John H. E. Cohn) 證明的。而素數(shù),即盧卡斯素數(shù) (Lucas Prime) 則有: 3, 7, 11, 29, 47, ......

如果一個數(shù)不是1和4,而又是盧卡斯數(shù)的話就一定是梅森數(shù)

本文題目:go語言梅森素數(shù),go語言判斷素數(shù)
文章地址:http://muchs.cn/article46/phiheg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、小程序開發(fā)、網(wǎng)站排名、響應式網(wǎng)站、外貿(mào)網(wǎng)站建設、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作