亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中怎么判斷質數

發布時間:2023-03-09 14:32:16 來源:億速云 閱讀:117 作者:iii 欄目:開發技術

這篇文章主要介紹了C語言中怎么判斷質數的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇C語言中怎么判斷質數文章都會有所收獲,下面我們一起來看看吧。

C語言判斷質數

寫判斷質數的程序時,需特別注意邊界條件:

1.開始邊界條件:2作為第一位質數,不參與循環;

2.循環主體:divisor += divisor % 2 +1代表當除數divisor是奇數時+2,是偶數時+1;

3.結束邊界條件:當divisor趨近n時,即divisor=n-1或divisor=n-2,仍然沒有數能被n整除,那么可以判斷n為質數

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

C語言判斷素數的函數

下列程序寫了一個判別素數的函數,在主函數輸入一個整數,輸出是否為素數的信息。

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

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

但是經過運行可以知道,n=4的時候,程序判斷4是素數,明顯是錯誤的,n取0和1的時候同理,程序存在漏洞。

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

正確代碼如下

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

關于“C語言中怎么判斷質數”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“C語言中怎么判斷質數”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文化| 六安市| 台北县| 宿州市| 房产| 遂昌县| 夏津县| 酒泉市| 闻喜县| 岳阳市| 合肥市| 临沂市| 涪陵区| 玉门市| 蒲江县| 临沭县| 永宁县| 平顺县| 元氏县| 城口县| 于都县| 绥阳县| 景洪市| 宁武县| 石台县| 叙永县| 泸定县| 西贡区| 清原| 容城县| 静乐县| 江都市| 信阳市| 民权县| 岑巩县| 白玉县| 措勤县| 罗定市| 紫金县| 来安县| 博野县|