Python編程算法【四十三】梅森素?cái)?shù)
【案例內(nèi)容】
? ?梅森數(shù)(Mersenne Prime)指的是形如?的正整數(shù),其中指數(shù)n是素?cái)?shù),記為
如果一個(gè)梅森數(shù)是素?cái)?shù),則稱其為梅森素?cái)?shù)。例如:?和?
?都是梅森素?cái)?shù)。但是n=11時(shí),
,顯然不是梅森素?cái)?shù)。
? ? 請(qǐng)求出指數(shù)n<20的所有梅森素?cái)?shù)。
【解題思路】
? ?本題的解答思路:先找出20以內(nèi)的素?cái)?shù),再通過(guò)梅森數(shù)的公式,求出結(jié)果,若該結(jié)果也是一個(gè)素?cái)?shù),那么該梅森數(shù)就是梅森素?cái)?shù)。具體操作是,設(shè)定一個(gè)判斷素?cái)?shù)的函數(shù),接著用for循環(huán)遍歷2~19,找出其中的素?cái)?shù),然后代入 求出結(jié)果,最后判斷該結(jié)果是否為素?cái)?shù),若為素?cái)?shù)那就是梅森素?cái)?shù)。具體代碼如下:
【Python代碼】

1722年,瑞士數(shù)學(xué)大師歐拉證明了 ?是一個(gè)素?cái)?shù),它共有10位數(shù),成為當(dāng)時(shí)世界上已知的最大素?cái)?shù)。迄今為止,人們僅發(fā)現(xiàn)了47個(gè)梅森素?cái)?shù)。梅森素?cái)?shù)歷來(lái)都是數(shù)論研究中的一項(xiàng)重要內(nèi)容,也是當(dāng)今科學(xué)探索中的熱點(diǎn)和難點(diǎn)問(wèn)題。