最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
库车县| 防城港市| 江都市| 虞城县| 泗阳县| 香河县| 锡林郭勒盟| 京山县| 乌海市| 仁怀市| 都江堰市| 九龙坡区| 通州市| 罗城| 安顺市| 焦作市| 策勒县| 贵阳市| 吴桥县| 浮梁县| 大庆市| 小金县| 新河县| 江陵县| 九寨沟县| 彩票| 蒙山县| 渝北区| 隆化县| 中超| 乌拉特后旗| 民和| 宁德市| 大荔县| 台南市| 贵南县| 长治县| 琼海市| 彭水| 成武县| 英超|