麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

使用Python求指數為20以內的所有梅森素數

2023-04-26 12:04:39
字體:
來源:轉載
供稿:網友

這篇文章將要介紹梅森素數的定義以及在Python中實現的方法。

一、梅森素數

梅森數(Mn)指的是形如2n - 1的正整數,其中指數 n 是素數。

如果一個梅森數是素數,則稱其為梅森素數。例如22-1=3、23-1=7都是梅森素數。

當n=2,3,5,7時,Mn都是素數,但n = 11時,Mn = M11 = 211 - 1 = 2047 = 23 × 89,顯然 M11 不是梅森素數。

目前僅發現 51 個梅森素數,最大的是 M82589933 (即2的82589933次方減1),有24862048位。

梅森素數歷來都是數論研究中的一項重要內容,也是當今科學探索中的熱點和難點問題。

(以上來自 @潘石屹 微博話題 #潘石屹用Python解決100個問題#)

二、在Python中的實現方法

以下是實現求指數 n < 20 以內的所有梅森素數的源代碼。

import math

# 定義判斷一個數是否為素數的函數
def isprime(num):
    tmp = int(math.sqrt(num))
    for i in range(2, tmp + 1):
        if num % i == 0:
            return False
    return True

N = 20  # 定義指數n的最大值
for n in range(2, N + 1):
    if isprime(n): # 指數n是否為素數
        mn = pow(2, n) - 1  # 求出梅森數
        if isprime(mn): # 梅森數也是素數,則輸出
            print(f"n={n}, M{n}={mn}")

以上程序執行的結果如下:

n=2, M2=3
n=3, M3=7
n=5, M5=31
n=7, M7=127
n=13, M13=8191
n=17, M17=131071
n=19, M19=524287
從運行結果來看,指數為20以內的梅森素數共7個。你可以接著往下找,第8個是 M31 = 21 4748 3647,第9個是M61 = 230 5843 0092 1369 3951,再下一個,武林網VEVB沒找出來,指數是不是在100以內也不知道。

三、說明

因為梅森素數很稀有,尋找起來也很費時,上面查找指數在20以內的梅森素數在個人電腦上約在1秒左右就可以完成。第8個約需要0.35秒,第9個約需130秒,下一個運行了很長時間,改進了求素數的算法,仍然沒有找出來。下圖是在運行多次后截圖的情況:

使用Python求指數為20以內的梅森素數

本文(完)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天天碰夜夜操 | xxxxxx打针视频vk | 久久久久久久久久久国产精品 | 96视频在线免费观看 | 国产亚洲精品久久久久久久久 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 亚洲射吧 | 久久久久久久久浪潮精品 | 欧美成人做爰高潮片免费视频 | 久草影音 | 一级观看免费完整版视频 | 国产一级淫片a级aaa | 亚洲精品 在线播放 | av电影在线网站 | 国产一级毛片不卡 | 国产免费小视频在线观看 | 成人一级视频在线观看 | 国产精品午夜在线 | 久草手机在线观看视频 | 成人电影毛片 | 国产精品久久久久久久久粉嫩 | 19禁国产精品福利视频 | 久草导航| 久久草在线观看视频 | 国产98色在线 | 久久综合艹 | 国产午夜精品一区二区三区嫩草 | 视频一区二区中文字幕 | 海外中文字幕在线观看 | 毛片在线免费观看网址 | 国产91一区二区三区 | 日本在线播放一区二区三区 | 精品国产九九九 | 国产日韩在线观看视频 | 久久精国 | 久久亚洲激情 | h色视频在线观看 | 欧产日产国产精品乱噜噜 | 性生活视频一级 | 久久久久久亚洲综合影院红桃 | 色播亚洲 |