日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java梅森素数_JAVA基础 第三篇:梅森数、梅森素数、伪素数——素数与指数的完美结合与进阶...

發布時間:2024/4/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java梅森素数_JAVA基础 第三篇:梅森数、梅森素数、伪素数——素数与指数的完美结合与进阶... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在前面的章節中,我們分別討論了質數和指數,今天我們不做其他的,僅僅將它們進行整合一下,為什么呢?因為在數學領域,有一種特殊的正整數,形如:2^p - 1,其中指數p為質數,這種數字被稱為梅森數,其中的質數又被稱為梅森素數。

梅森數中有一種“變體”——偽素數:2^(p-1)-1,它能被p整除,同時p又為非偶數的合數。

OK,今天我們用JAVA語言來針對這幾個特殊數字進行編譯。

一、梅森數

我們先根據梅森數的公式自定一個方法用以計算梅森數:

/**

* 計算梅森數

*

* @param number

* @return

*/

private static BigDecimal calculateMersenneNumber(BigDecimal number) {

// TODO Auto-generated method stub

return integerMi(BigDecimal.valueOf(2), number).subtract(BigDecimal.ONE);

}

上述這個方法僅僅是用以計算2^p - 1的結果,因此我們在main()方法體中編譯代碼時需要“提取”質指數:

for (BigDecimal a = BigDecimal.valueOf(2); a.compareTo(BigDecimal.valueOf(100)) <= 0; a = a.add(BigDecimal.ONE))

if (primeNumber(a))

System.out.println("2 ^ " + a + " - 1 = " + calculateMersenneNumber(a));

運行結果:

2 ^ 2 - 1 = 3

2 ^ 3 - 1 = 7

2 ^ 5 - 1 = 31

2 ^ 7 - 1 = 127

2 ^ 11 - 1 = 2047

2 ^ 13 - 1 = 8191

2 ^ 17 - 1 = 131071

2 ^ 19 - 1 = 524287

2 ^ 23 - 1 = 8388607

2 ^ 29 - 1 = 536870911

2 ^ 31 - 1 = 2147483647

2 ^ 37 - 1 = 137438953471

2 ^ 41 - 1 = 2199023255551

2 ^ 43 - 1 = 8796093022207

2 ^ 47 - 1 = 140737488355327

2 ^ 53 - 1 = 9007199254740991

2 ^ 59 - 1 = 576460752303423487

2 ^ 61 - 1 = 2305843009213693951

2 ^ 67 - 1 = 147573952589676412927

2 ^ 71 - 1 = 2361183241434822606847

2 ^ 73 - 1 = 9444732965739290427391

2 ^ 79 - 1 = 604462909807314587353087

2 ^ 83 - 1 = 9671406556917033397649407

2 ^ 89 - 1 = 618970019642690137449562111

2 ^ 97 - 1 = 158456325028528675187087900671

根據梅森數的定義我們計算出了指數p在前100以內的所有梅森數。

二、梅森素數

梅森素數也是梅森數,只不過它將“梅森合數”舍棄了,因此我們在輸出梅森素數時只需在main()方法體中梅森數的源代碼中加入一個條件語句,用以限制輸出時只輸出梅森素數即可。

for (BigDecimal a = BigDecimal.valueOf(2); a.compareTo(BigDecimal.valueOf(100)) <= 0; a = a.add(BigDecimal.ONE))

if (primeNumber(a) && primeNumber(calculateMersenneNumber(a)))

System.out.println("2 ^ " + a + " - 1 = " + calculateMersenneNumber(a));

運行結果:

2 ^ 2 - 1 = 3

2 ^ 3 - 1 = 7

2 ^ 5 - 1 = 31

2 ^ 7 - 1 = 127

2 ^ 13 - 1 = 8191

2 ^ 17 - 1 = 131071

2 ^ 19 - 1 = 524287

…………………………

它得先計算,在判斷是否為素數,運行時間相當長,因此我只選取了指數在20以內的。

三、偽素數

同樣,我們先根據偽素數的公式自定一個方法用以計算偽素數:

/**

* 計算偽素數

*

* @param number

* @return

*/

private static BigDecimal calculatePseudoPrimeNumber(BigDecimal number) {

// TODO Auto-generated method stub

return integerMi(BigDecimal.valueOf(2), number.subtract(BigDecimal.ONE)).subtract(BigDecimal.ONE);

}

就如同上述計算梅森數和梅森素數一樣,在編譯main()方法體中的代碼時,我們也需要根據偽素數的定義對2的指數進行一定的限制;并且我們多加一個步驟,就是對其進行質數分解。

為此我們編譯出了如下代碼:

for (BigDecimal a = BigDecimal.valueOf(2);; a = a.add(BigDecimal.ONE))

if (calculatePseudoPrimeNumber(a).remainder(a).equals(BigDecimal.ZERO) && !primeNumber(a)

&& a.remainder(BigDecimal.valueOf(2)).equals(BigDecimal.ONE)) {

System.out.print("2 ^ ( " + a + " - 1 ) - 1 | " + a + " = ");

divisorPrime(a);

System.out.println();

}

PS:我們看偽素數的公式:2^(p-1)-1能被p整除,最小的偽素數為341,那么帶入公式,其輸出的結果也是非常大的,因此我們在此省卻此類結果的輸出,僅僅用公式表達偽素數的含義,并且對偽素數進行質數分解。

運行結果:

2 ^ ( 341 - 1 ) - 1 | 341 = 11 * 31

2 ^ ( 561 - 1 ) - 1 | 561 = 3 * 11 * 17

2 ^ ( 645 - 1 ) - 1 | 645 = 3 * 5 * 43

2 ^ ( 1105 - 1 ) - 1 | 1105 = 5 * 13 * 17

2 ^ ( 1387 - 1 ) - 1 | 1387 = 19 * 73

2 ^ ( 1729 - 1 ) - 1 | 1729 = 7 * 13 * 19

2 ^ ( 1905 - 1 ) - 1 | 1905 = 3 * 5 * 127

2 ^ ( 2047 - 1 ) - 1 | 2047 = 23 * 89

2 ^ ( 2465 - 1 ) - 1 | 2465 = 5 * 17 * 29

2 ^ ( 2701 - 1 ) - 1 | 2701 = 37 * 73

2 ^ ( 2821 - 1 ) - 1 | 2821 = 7 * 13 * 31

………………………………

PS:“|”代表前者可以被后者整除。

總結

以上是生活随笔為你收集整理的java梅森素数_JAVA基础 第三篇:梅森数、梅森素数、伪素数——素数与指数的完美结合与进阶...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费看裸体视频网站 | 国产成人av一区二区三区不卡 | 久久99久久99精品蜜柚传媒 | 又黄又色的网站 | 亚洲视频欧美视频 | xxx精品 | 黄色小说图片视频 | 99精品在线观看视频 | 视频一区二区视频 | 欧美性色视频 | 色老头在线观看 | 国产成人精品影院 | 久久av红桃一区二区小说 | 久青草免费视频 | 亚洲一片 | 国产色综合视频 | 亚洲一区二区三区电影 | 亚洲中文字幕久久无码 | 操女网站 | 日本涩涩网| 精品国产一区一区二区三亚瑟 | 久草资源网 | 高清日韩一区二区 | 青娱乐导航 | 亚洲午夜精品久久 | 国产在线观看免费 | 综合性色 | 婷婷综合在线视频 | 国产激情无套内精对白视频 | 成人黄页网站 | 成人午夜精品福利 | 日本高清不卡码 | 国产日韩三级 | 脱裤吧导航| 欧美一级片免费看 | 中国美女毛片 | 制服丝袜国产精品 | 亚洲免费成人 | 黄色免费成人 | www.麻豆av.com| 男生和女生一起差差差视频 | 成人性毛片 | 午夜伦理剧场 | 88福利视频 | 亚洲综合涩 | 成片免费观看 | 亚洲色中色 | 日本美女黄色 | 精品一二三区久久aaa片 | 伊人欧美在线 | 99r在线视频 | 在线精品亚洲欧美日韩国产 | 日本三级中文字幕 | 一本久久a精品一合区久久久 | 91视频99 | 日韩欧美大片在线观看 | 色偷偷亚洲| 毛片久久久 | 在线免费日韩 | 国产1区2区 | 亚洲一区二区自拍偷拍 | 国产欧美在线精品日韩 | 中文字幕高清在线播放 | 日本妈妈9 | 久久精品国产99久久 | 中文字幕人妻一区二区在线视频 | 日本xxx高清| 好色999 | 韩国毛片基地 | 精品人妻一区二区免费视频 | 亚洲天堂免费在线 | 中文字幕+乱码+中文字幕明步 | 国产成人三级在线观看视频 | 国产成人91精品 | 亚洲综合色在线 | 国产美女福利在线 | 色综合一区二区三区 | 国产字幕av| 女人扒开屁股让男人捅 | 在线观看免费av网站 | 日韩毛片网 | 日韩在线视屏 | 中国无码人妻丰满熟妇啪啪软件 | 久久久久久久久久久网站 | 黄视频免费在线观看 | 三级特黄| 奇米影视一区二区 | 国产白丝喷水 | 日韩精品一区二区三区国语自制 | 在线看片你懂得 | 四虎成人精品永久免费av九九 | 免费视频久久 | 国产av无码专区亚洲av毛片搜 | 成人午夜精品视频 | www.精品久久 | 一级片aaaaa 国产又黄又粗又猛又爽 | 国产中文字幕网 | 国产麻豆成人传媒免费观看 | 强伦人妻一区二区三区 |