最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中如何判斷質(zhì)數(shù)

 更新時(shí)間:2023年03月03日 09:53:44   作者:胖大斯  
這篇文章主要介紹了C語言中的判斷質(zhì)數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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

寫判斷質(zhì)數(shù)的程序時(shí),需特別注意邊界條件:

1.開始邊界條件:2作為第一位質(zhì)數(shù),不參與循環(huán);

2.循環(huán)主體:divisor += divisor % 2 +1代表當(dāng)除數(shù)divisor是奇數(shù)時(shí)+2,是偶數(shù)時(shí)+1;

3.結(jié)束邊界條件:當(dāng)divisor趨近n時(shí),即divisor=n-1或divisor=n-2,仍然沒有數(shù)能被n整除,那么可以判斷n為質(zhì)數(shù)

#include <stdio.h>
int main() {
    int divisor;
    int n;
    scanf("%d",&n); // 輸入要判斷的數(shù)
    if (n == 2) {
        printf("YES"); 
    } else {
        for (divisor = 2; divisor < n; divisor += (divisor % 2 + 1) ) {
            if (n % divisor == 0) {
                printf("NO"); // 當(dāng)出現(xiàn)能被1或自身之外整除時(shí)
                break;
            } else if (divisor == n - 1 || divisor == n-2) {
                printf("YES"); // 循環(huán)到 n-1 或 n-2 時(shí),仍然沒有被其他數(shù)整除
            }
        }
    }
    return 0;
}

C語言判斷素?cái)?shù)的函數(shù)

下列程序?qū)懥艘粋€(gè)判別素?cái)?shù)的函數(shù),在主函數(shù)輸入一個(gè)整數(shù),輸出是否為素?cái)?shù)的信息。

#include <stdio.h>?
int main()
? ?{
? ? ? int prime(int);
? ? ? int n;
? ? ? printf("請(qǐng)輸入一個(gè)整數(shù):");
? ? ? scanf("%d",&n);?? ?
? ? ?if______________________ ? ? ? ? ? ? ? ??
?? ? ? ? printf("%d 是素?cái)?shù)。\n",n);
? ? ?else
?? ? ? ? printf("%d 不是素?cái)?shù)。\n",n);
? ? ?return 0;
? ?}
? int prime(int n)
? {
? ? ?int flag=1,i;
? ? ?for(i=2;i<n/2&&flag==1;i++)
? ? ?if ______________________ ? ? ? ? ? ? ? ? ??
? ? ?flag=0;
? ? ?________________________;
? ? }

經(jīng)分析,以上代碼使用flag的值來判斷輸入的n是否為素?cái)?shù),flag=1,n為素?cái)?shù);flag=0,n不是素?cái)?shù)。完善if條件語句,第一個(gè)if, 主函數(shù)中的if調(diào)用函數(shù),需要填入一個(gè)參數(shù),即prime(n); 第二個(gè)if,是判斷什么情況下flag=0,即輸入的整數(shù)不為素?cái)?shù),即(n/i==0),余數(shù)為0,可以整除;最后返回flag的值,return flag。

但是經(jīng)過運(yùn)行可以知道,n=4的時(shí)候,程序判斷4是素?cái)?shù),明顯是錯(cuò)誤的,n取0和1的時(shí)候同理,程序存在漏洞。

分析得知,在定義函數(shù)的過程中,for循環(huán)條件語句,i<=n/2&&flag==1才能正確運(yùn)行,同時(shí)添加if語句對(duì)0和1判斷。(前提輸入的n>=0,如果為負(fù)整數(shù),另加判斷條件,略)

正確代碼如下

#include <stdio.h> 
int main()
   {
    int prime(int);//函數(shù)聲明
    int n;
    printf("請(qǐng)輸入一個(gè)整數(shù):\n");
    scanf("%d",&n);	
    if(prime(n))
	{    
        printf("%d 是素?cái)?shù)。\n",n);
    }else
    {
        printf("%d 不是素?cái)?shù)。\n",n);
    }
    return 0;
   }
int prime(int n)  //函數(shù)定義
{
    int flag = 1,i;
    if (n <= 1)  //判斷0和1,需要先排除
       flag = 0; //返回0值
    for(i=2;i <= n/2 && flag == 1;i++) //n無法整除比n/2大的數(shù),flag=1為真,即為素?cái)?shù),繼續(xù)執(zhí)行
        if (n%i == 0)                 //如果取余為0,則其可以整除,不是素?cái)?shù)。
        flag=0;                     //標(biāo)記flag=0,非素?cái)?shù)。
    return flag;
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++簡(jiǎn)明圖解this指針的使用

    C++簡(jiǎn)明圖解this指針的使用

    this 指針在C++類和對(duì)象中是個(gè)很方便實(shí)用的關(guān)鍵字,可以簡(jiǎn)化對(duì)象成員屬性的調(diào)用,使代碼表達(dá)的含義更加準(zhǔn)確;在之前的學(xué)習(xí)中我們都可以判斷變量所占內(nèi)存空間大小,那么我們創(chuàng)建的類對(duì)象所占的內(nèi)存空間怎么計(jì)算呢?想知道this的妙用和類對(duì)象占用的內(nèi)存空間就來跟我學(xué)習(xí)吧
    2022-06-06
  • 利用C語言解決八皇后問題以及解析

    利用C語言解決八皇后問題以及解析

    這篇文章主要給大家介紹了關(guān)于利用C語言解決八皇后問題以及解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • C語言如何在指針中隱藏?cái)?shù)據(jù)詳解

    C語言如何在指針中隱藏?cái)?shù)據(jù)詳解

    這篇文章主要給大家介紹了關(guān)于C語言如何在指針中隱藏?cái)?shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2018-12-12
  • Visual Studio C++指針靠前靠后的問題全面解析

    Visual Studio C++指針靠前靠后的問題全面解析

    這篇文章主要介紹了Visual Studio C++指針靠前靠后的問題全面解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • C++超詳細(xì)講解函數(shù)對(duì)象

    C++超詳細(xì)講解函數(shù)對(duì)象

    在c++中,我們把所有能當(dāng)作函數(shù)使用的對(duì)象統(tǒng)稱為函數(shù)對(duì)象。它是實(shí)現(xiàn)operator()的任何類型,此運(yùn)算符被稱為調(diào)用運(yùn)算符,當(dāng)調(diào)用此操 作符時(shí),其表現(xiàn)形式如同普通函數(shù)調(diào)用一般,因此取名叫函數(shù)對(duì)象
    2022-06-06
  • 利用C語言實(shí)現(xiàn)五子棋游戲

    利用C語言實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了利用C語言實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C語言 實(shí)現(xiàn)歸并排序算法

    C語言 實(shí)現(xiàn)歸并排序算法

    這篇文章主要介紹了C語言 實(shí)現(xiàn)歸并排序算法的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • C++實(shí)現(xiàn)圖的鄰接矩陣表示

    C++實(shí)現(xiàn)圖的鄰接矩陣表示

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)圖的鄰接矩陣表示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語言預(yù)處理器使用方法講解

    C語言預(yù)處理器使用方法講解

    C預(yù)處理器不是編譯器的組成部分,但是它是編譯過程中一個(gè)單獨(dú)的步驟。簡(jiǎn)言之,C預(yù)處理器只不過是一個(gè)文本替換工具而已,它們會(huì)指示編譯器在實(shí)際編譯之前完成所需的預(yù)處理。我們將把C預(yù)處理器(C Preprocessor)簡(jiǎn)寫為CPP
    2022-12-12
  • C++詳細(xì)講解IO流原理

    C++詳細(xì)講解IO流原理

    當(dāng)程序與外界進(jìn)行信息交換時(shí),存在兩個(gè)對(duì)象,一個(gè)是程序中的對(duì)象,另一個(gè)是文件對(duì)象。流是信息流動(dòng)的一種抽象,它負(fù)責(zé)在數(shù)據(jù)的生產(chǎn)者和數(shù)據(jù)的消費(fèi)者之間建立聯(lián)系,并管理數(shù)據(jù)的流動(dòng)
    2022-05-05

最新評(píng)論

迁西县| 潮州市| 竹山县| 开原市| 芦溪县| 武汉市| 汕头市| 崇阳县| 玉林市| 始兴县| 南靖县| 右玉县| 合作市| 隆德县| 平山县| 夏河县| 莱芜市| 铜山县| 治多县| 宝丰县| 栾城县| 北碚区| 新丰县| 手游| 铜川市| 皮山县| 连州市| 常熟市| 东乡族自治县| 马边| 九寨沟县| 扬州市| 昆明市| 原阳县| 鄂温| 镇远县| 五大连池市| 准格尔旗| 定边县| 饶河县| 阳信县|