欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)求梅森素?cái)?shù)的代碼與解析

 更新時(shí)間:2018年12月05日 10:33:52   投稿:daisy  
這篇文章主要給大家介紹了關(guān)于利用C語言實(shí)現(xiàn)求梅森素?cái)?shù)的代碼與解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

問題描述

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

當(dāng)n=2,3,5,7時(shí),Mn 都是素?cái)?shù),但n=11時(shí),Mn=M11=211-1=2047=23X89,顯然不是梅森素?cái)?shù)。

1722年,瑞士數(shù)學(xué)大師歐拉證明了231-1=2147483647是一個(gè)素?cái)?shù),它共有10位數(shù),成為當(dāng)時(shí)世界上已知的最大素?cái)?shù)。

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

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

問題分析

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

算法設(shè)計(jì)

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

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

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

若prime()函數(shù)返回值為1,則當(dāng)前mp為梅森素?cái)?shù),應(yīng)該將其輸出;若prime()函數(shù)返回值為0,則當(dāng)前mp不是梅森素?cái)?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;
}

運(yùn)行結(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é)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • C++數(shù)據(jù)結(jié)構(gòu)之單鏈表

    C++數(shù)據(jù)結(jié)構(gòu)之單鏈表

    這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)之單鏈表,鏈表是由一個(gè)個(gè)結(jié)點(diǎn)鏈結(jié)成的。結(jié)點(diǎn)包括數(shù)據(jù)域和指針域兩部分,數(shù)據(jù)域用來存儲(chǔ)數(shù)據(jù)元素的信息,指針域用來存儲(chǔ)下一個(gè)結(jié)點(diǎn)的地址,更詳細(xì)內(nèi)容請(qǐng)需要的小伙伴參考下面文章內(nèi)容
    2022-01-01
  • C++學(xué)習(xí)之Lambda表達(dá)式的用法詳解

    C++學(xué)習(xí)之Lambda表達(dá)式的用法詳解

    Lambda?表達(dá)式(lambda?expression)是一個(gè)匿名函數(shù),Lambda表達(dá)式基于數(shù)學(xué)中的λ演算得名。本文就來為大家詳細(xì)講講C++中Lambda表達(dá)式的使用,需要的可以參考一下
    2022-07-07
  • C++實(shí)現(xiàn)CreatThread函數(shù)主線程與工作線程交互的方法

    C++實(shí)現(xiàn)CreatThread函數(shù)主線程與工作線程交互的方法

    這篇文章主要介紹了C++實(shí)現(xiàn)CreatThread函數(shù)主線程與工作線程交互的方法,是Windows應(yīng)用程序設(shè)計(jì)中非常實(shí)用的方法,需要的朋友可以參考下
    2014-10-10
  • 簡(jiǎn)單總結(jié)C++中的修飾符類型

    簡(jiǎn)單總結(jié)C++中的修飾符類型

    這篇文章主要介紹了C++中的修飾符類型總結(jié),是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-05-05
  • C++獲取MD5算法實(shí)現(xiàn)代碼

    C++獲取MD5算法實(shí)現(xiàn)代碼

    這篇文章主要介紹了C++獲取MD5算法實(shí)現(xiàn)代碼,這個(gè)是網(wǎng)上扒下來的 作者已經(jīng)無法知道是誰了 ,可以備用
    2019-04-04
  • c++?創(chuàng)建型設(shè)計(jì)模式工廠方法Factory?Method示例詳解

    c++?創(chuàng)建型設(shè)計(jì)模式工廠方法Factory?Method示例詳解

    這篇文章主要為大家介紹了c++?創(chuàng)建型設(shè)計(jì)模式工廠方法Factory?Method示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • C語言函數(shù)多個(gè)返回值方式

    C語言函數(shù)多個(gè)返回值方式

    這篇文章主要介紹了C語言函數(shù)多個(gè)返回值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++計(jì)算整數(shù)序列的最長(zhǎng)遞增子序列的長(zhǎng)度操作

    C++計(jì)算整數(shù)序列的最長(zhǎng)遞增子序列的長(zhǎng)度操作

    這篇文章主要介紹了C++計(jì)算整數(shù)序列的最長(zhǎng)遞增子序列的長(zhǎng)度操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Matlab繪制花里胡哨的山脊圖

    Matlab繪制花里胡哨的山脊圖

    這篇文章主要介紹了如何利用Matlab實(shí)現(xiàn)繪制一些花里胡哨的山脊圖,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定的幫助,需要的可以參考一下
    2023-02-02
  • C++模板的特化超詳細(xì)精講

    C++模板的特化超詳細(xì)精講

    最近我學(xué)習(xí)了C++中的模板相關(guān)知識(shí),模板是泛型編程的基礎(chǔ),十分重要。所以特意整理出來一篇文章供我們一起復(fù)習(xí)和學(xué)習(xí)
    2022-08-08

最新評(píng)論