五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

一文解決如何使用 C 語(yǔ)言判斷質(zhì)數(shù)(素?cái)?shù))[ 附解析與源碼 ]

2023-03-08 12:05 作者:吳小敏63  | 我要投稿

前言#

質(zhì)數(shù)歷來(lái)都是數(shù)學(xué)界的寵兒,是數(shù)學(xué)里神秘的謎團(tuán)。

質(zhì)數(shù)又和 C 語(yǔ)言有著不解之緣,本篇文章將講解如何用 C 語(yǔ)言判斷質(zhì)數(shù)。

為了方便大家在讀完此文章后使用文中程序,我會(huì)將判斷質(zhì)數(shù)的程序封裝成函數(shù),此函數(shù)的功能是:判斷形參?_number?是否是質(zhì)數(shù),若?_number?是質(zhì)數(shù),則返回?1;若不是質(zhì)數(shù),則返回?0。

何為質(zhì)數(shù)#

質(zhì)數(shù)又稱素?cái)?shù)。一個(gè)大于 1 的自然數(shù),除了 1 和它自身外,不能被其他自然數(shù)整除的數(shù)叫做質(zhì)數(shù);否則稱為合數(shù)(規(guī)定 1 既不是質(zhì)數(shù)也不是合數(shù))。

C 語(yǔ)言判斷質(zhì)數(shù)#

在了解了質(zhì)數(shù)的定義后,現(xiàn)在我們便可以著手編寫程序啦。

現(xiàn)在給定一個(gè)正整數(shù)?number,要求我們判斷此數(shù)是否為質(zhì)數(shù)。針對(duì)這一要求本篇采用兩種判斷方法,分別是:暴力求解 與 巧用平方根。

暴力求解#

通過(guò)質(zhì)數(shù)的定義可以得到如何判斷一個(gè)數(shù)是否為質(zhì)數(shù), 我們可以通過(guò)遍歷從?2?到?number - 1?這個(gè)區(qū)間中的所有數(shù),如果都不能被?number?整除,則?number?是質(zhì)數(shù),否則?number?不是質(zhì)數(shù)。

具體代碼如下:

/***************************************************************************** 函數(shù)名: ?Judge_PrimeNumber* 功能描述:判斷一個(gè)數(shù)是否為質(zhì)數(shù)* 輸入?yún)?shù):* _number:需要判斷的數(shù)* 返回值:* 1:是質(zhì)數(shù)* 0:不是質(zhì)數(shù)* 外部參數(shù):無(wú)* 注意事項(xiàng):無(wú)** 作者: 梁國(guó)慶* 日期: 2021-12-11* 修改記錄:****************************************************************************/int Judge_PrimeNumber(int _number){ ? ?int i = 0; ? ?if (_number < 2) ? ?{ ? ? ? ?return 0; ? /* 需要判斷的數(shù)小于 2,則不是質(zhì)數(shù),返回 0 */ ? ?} ? ?for (i = 2; i < _number; i++) ? /* 遍歷從 2 到 _number - 1 區(qū)間中的所有數(shù) */ ? ?{ ? ? ? ?if (_number % i == 0) ? ? ? ?{ ? ? ? ? ? ?return 0; ? ? ? ? ? ? ? /* 若可以被整除,則不是質(zhì)數(shù),返回 0 */ ? ? ? ?} ? ?} ? ?return 1; ? ? ? /* 若執(zhí)行完以上程序均未返回,則是指數(shù),返回 1 */}

巧用平方根#

使用暴力求解固然可以求出一個(gè)數(shù)是否為質(zhì)數(shù),但運(yùn)算次數(shù)是最多的,運(yùn)行速度也是最慢的,我們還可以將程序進(jìn)行優(yōu)化,提升程序運(yùn)行時(shí)的效率。

在一般領(lǐng)域,對(duì)正整數(shù)?number,如果用?2?到 $\sqrt{number}$ 之間的所有整數(shù)去除,均無(wú)法整除,則?number?為質(zhì)數(shù)。那么就可以利用這一方法,巧用平方根判斷一個(gè)數(shù)是否為質(zhì)數(shù)。

在 C 語(yǔ)言中求平方根可以使用 C 標(biāo)準(zhǔn)庫(kù),<math.h>?頭文件中定義了各種數(shù)學(xué)函數(shù),sqrt()?函數(shù)是平方根函數(shù),功能是計(jì)算一個(gè)非負(fù)實(shí)數(shù)的平方根,調(diào)用時(shí)程序要包含?<math.h>?頭文件。

具體代碼如下:

/***************************************************************************** 函數(shù)名: ?Judge_PrimeNumber* 功能描述:判斷一個(gè)數(shù)是否為質(zhì)數(shù)* 輸入?yún)?shù):* _number:需要判斷的數(shù)* 返回值:* 1:是質(zhì)數(shù)* 0:不是質(zhì)數(shù)* 外部參數(shù):無(wú)* 注意事項(xiàng):無(wú)** 作者: 梁國(guó)慶* 日期: 2021-12-11* 修改記錄:****************************************************************************/int Judge_PrimeNumber(int _number){ ? ?int i = 0; ? ?if (_number < 2) ? ?{ ? ? ? ?return 0; ? /* 需要判斷的數(shù)小于 2,則不是質(zhì)數(shù),返回 0 */ ? ?} ? ?for (i = 2; i <= sqrt(_number); i++) ? ?/* 遍歷從 2 到 √_number 區(qū)間中的所有數(shù) */ ? ?{ ? ? ? ?if (_number % i == 0) ? ? ? ?{ ? ? ? ? ? ?return 0; ? ? ? ? ? ? ? ? ? ? ? /* 若可以被整除,則不是質(zhì)數(shù),返回 0 */ ? ? ? ?} ? ?} ? ?return 1; ? ? ? /* 若執(zhí)行完以上程序均未返回,則是指數(shù),返回 1 */}

如何調(diào)用函數(shù)#

對(duì)于如何使用 C 語(yǔ)言判斷質(zhì)數(shù),共講解了兩種方法并分別將編寫的程序封裝成為函數(shù),現(xiàn)在我們來(lái)講解一下如何在實(shí)際應(yīng)用中調(diào)用它們。

在這里,我以巧用平方根為例進(jìn)行講解(暴力求解的調(diào)用方法與之相同),也特別推薦大家在以后的使用中優(yōu)先選擇巧用平方根這種方法,因?yàn)橥ㄟ^(guò)平方根進(jìn)行判斷是運(yùn)算次數(shù)最少的,可以極大的提高我們程序的效率。

樣例代碼中,我們輸入一個(gè)整數(shù),然后調(diào)用判斷質(zhì)數(shù)的函數(shù),若輸入的數(shù)是質(zhì)數(shù)則輸出?Yes,否則輸出?No

具體代碼如下:

#include <stdio.h>#include <math.h> ? /* 包含 <math.h> *//***************************************************************************** 函數(shù)名: ?Judge_PrimeNumber* 功能描述:判斷一個(gè)數(shù)是否為質(zhì)數(shù)* 輸入?yún)?shù):* _number:需要判斷的數(shù)* 返回值:* 1:是質(zhì)數(shù)* 0:不是質(zhì)數(shù)* 外部參數(shù):無(wú)* 注意事項(xiàng):無(wú)** 作者: 梁國(guó)慶* 日期: 2021-12-11* 修改記錄:****************************************************************************/int Judge_PrimeNumber(int _number){ ? ?int i = 0; ? ?if (_number < 2) ? ?{ ? ? ? ?return 0; ? /* 需要判斷的數(shù)小于 2,則不是質(zhì)數(shù),返回 0 */ ? ?} ? ?for (i = 2; i <= sqrt(_number); i++) ? ?/* 遍歷從 2 到 √_number 區(qū)間中的所有數(shù) */ ? ?{ ? ? ? ?if (_number % i == 0) ? ? ? ?{ ? ? ? ? ? ?return 0; ? ? ? ? ? ? ? ? ? ? ? /* 若可以被整除,則不是質(zhì)數(shù),返回 0 */ ? ? ? ?} ? ?} ? ?return 1; ? ? ? /* 若執(zhí)行完以上程序均未返回,則是指數(shù),返回 1 */}int main(){ ? ?int N = 0; ? ?scanf("%d", &N); ? ?if (Judge_PrimeNumber(N) == 1) ?/* 調(diào)用判斷質(zhì)數(shù)的函數(shù),判斷輸入的整數(shù) N */ ? ?{ ? ? ? ?printf("Yes\n"); ? ? ? ? ? ?/* 是質(zhì)數(shù),則輸出 Yes */ ? ?} ? ?else ? ?{ ? ? ? ?printf("No\n"); ? ? ? ? ? ? /* 否則輸出 No */ ? ?} ? ?return 0;}

后記#

至此,我們講解了關(guān)于質(zhì)數(shù)的定義,帶領(lǐng)大家編寫了 C 語(yǔ)言判斷質(zhì)數(shù)的程序代碼,并將所寫代碼封裝成為函數(shù),同時(shí)為大家演示了如何調(diào)用函數(shù)來(lái)判斷質(zhì)數(shù)。
相信看完本篇文章的你,以后再遇到 C 語(yǔ)言判斷質(zhì)數(shù)的問(wèn)題,可以解決的游刃有余。

作者:main工作室

一文解決如何使用 C 語(yǔ)言判斷質(zhì)數(shù)(素?cái)?shù))[ 附解析與源碼 ]的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
体育| 鄂州市| 繁昌县| 道孚县| 江华| 洞口县| 翼城县| 东乡县| 太保市| 中江县| 平阴县| 东乡| 弥勒县| 区。| 江门市| 龙山县| 墨脱县| 辛集市| 南陵县| 罗源县| 揭阳市| 昆明市| 淮阳县| 铜鼓县| 丹寨县| 革吉县| 乐陵市| 大城县| 嘉兴市| 格尔木市| 青田县| 桂东县| 岗巴县| 阿瓦提县| 抚远县| 南平市| 云霄县| 红河县| 平南县| 彰化市| 柳河县|