欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

C語言實現(xiàn)求梅森素數(shù)的代碼與解析

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

問題描述

梅森數(shù)(Mersenne Prime)指的是形如2n-1的正整數(shù),其中指數(shù)n是素數(shù),即為Mn。如果一個梅森數(shù)是素數(shù),則稱其為梅森素數(shù)。例如22-1=3、23-1=7都是梅森素數(shù)。

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

1722年,瑞士數(shù)學大師歐拉證明了231-1=2147483647是一個素數(shù),它共有10位數(shù),成為當時世界上已知的最大素數(shù)。

迄今為止,人類僅發(fā)現(xiàn)了47個梅森素數(shù)。梅森素數(shù)歷來都是數(shù)論研究中的一項重要內(nèi)容,也是當今科學探索中的熱點和難點問題。

試求出指數(shù)n<20的所有梅森素數(shù)。

問題分析

要編程求解的問題是找出指數(shù)n<20的所有梅森素數(shù)。根據(jù)梅森素數(shù)的定義,我們可以先求出n<20的所有梅森數(shù),再逐一判斷這些數(shù)是否為素數(shù)。如果是素數(shù),則表示該數(shù)為梅森素數(shù),打印輸出即可;否則不是梅森素數(shù)。

算法設計

要求出n<20的所有梅森數(shù),因此在本題的算法設計中需要釆用循環(huán)結(jié)構(gòu)。

設變量mp存儲梅森數(shù),整數(shù)i表示指數(shù),其取值從2〜19,i每變化一次,都相應的計算出一個梅森數(shù),存放在mp中。對每次計算得到的當前mp值,都調(diào)用函數(shù)prime()進行判斷。

在判斷mp是否為素數(shù)時,可以定義一個函數(shù)prime(),每次都將mp的當前值作為實參傳遞給函數(shù)prime(),并判斷是否為素數(shù)。如果n為素數(shù),則prime()函數(shù)返回值為1,否則prime()函數(shù)返回值為0。

若prime()函數(shù)返回值為1,則當前mp為梅森素數(shù),應該將其輸出;若prime()函數(shù)返回值為0,則當前mp不是梅森素數(shù)。

程序流程圖:

下面是完整的代碼:

​#include <math.h>
#include <stdio.h>
int prime(int n)
{
int i;
long k;
k=sqrt(n)+1;
for(i=2; i<=k; i++)
if(n%i == 0)
return 0;
return 1;
}
int main()
{
int mp, n=0, i;
printf("Mersenne Prime:\n");
for(i=2; i<=20; i++)
{
mp=pow(2,i)-1;
if( prime(mp) )
{
n++;
printf("M(%d)=%d", i, mp);
printf("\n");
}
}
printf("the number of Mersenne Prime less than 20 is:%d\n", n);

return 0;
}

運行結(jié)果:

Mersenne Prime:
M(2)=3
M(3)=7
M(5)=31
M(7)=127
M(13)=8191
M(17)=131071
M(19)=524287
the number of Mersenne Prime less than 20 is:7

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對我們的支持。

上一篇:使用C++實現(xiàn)順序鏈表

欄    目:C語言

下一篇:詳解C++調(diào)用Python腳本中的函數(shù)的實例代碼

本文標題:C語言實現(xiàn)求梅森素數(shù)的代碼與解析

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/644.html

網(wǎng)頁制作CMS教程網(wǎng)絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權所有