網站首頁 健康小知識 母嬰教育 起名 運動知識 職場理財 情感生活 綠色生活 遊戲數碼 美容 特色美食 愛好

用C語言編寫判斷一個數是否是素數的程序

欄目: 學習交流 / 發佈於: / 人氣:2.75W

工具/材料

ubuntu,vim,gcc

操作方法

打開ubuntu並開啟一個終端,輸入命令vim is_prime.c,打開編輯頁面,輸入預處理指令#include<stdio.h>用於在主函數中調用判斷函數。然後定義一個函數int is_prime(int n),即判斷整數n是否為素數。

用C語言編寫判斷一個數是否是素數的程序
用C語言編寫判斷一個數是否是素數的程序 第2張

首先,判斷這個數是否小於2.若是,則直接返回0,即表示它不是一個素數。

用C語言編寫判斷一個數是否是素數的程序 第3張

然後定義中間的因數i,初始值為2。依次使n對i取餘數,看n能否整除i,然後令i自增直到i的平方大於n。在這過程中,如果遇到n能整除i,則説明n不是一個素數。如果循環能夠直到i的平方大於n才結束,説明n是一個素數。

用C語言編寫判斷一個數是否是素數的程序 第4張

接下來,我們使用主函數進行測試,使用printf("%d : %dn", n, is_prime(n))的格式進行輸出。如果輸出結果為0,説明不為素數;結果為1,説明是一個素數。
測試的數據依次是2,4,9,15, 17, 23, 25。

用C語言編寫判斷一個數是否是素數的程序 第5張

退出編輯器vim,然後使用gcc編譯並運行它,得到結果。通過結果我們可以看出,預期的結果與我們對於素數的認知是相同的,説明我們的程序編寫沒有錯誤。以下是所有的源代碼:
#include <stdio.h>

//判斷一個數是否為素數的函數定義
int is_prime(int n)
{
//判斷n是否小於2.若小於則直接返回0
//表示n不是一個素數
if(n < 2)
return 0;
//定義一箇中間變量i,初始化i=2
int i = 2;
//依次判斷每一個不大於根號n的i是否能被n整除
for(i = 2; i * i <= n;i++)
{
//如果能夠整除
if(n % i == 0)
//直接返回0,表示n不是一個素數
return 0;
}
//如果程序運行到這裏,説明i*i大於n
//説明n是一個素數
return 1;
}

int main()
{
printf("%d : %dn", 2, is_prime(2));
printf("%d : %dn", 4, is_prime(4));
printf("%d : %dn", 9, is_prime(9));
printf("%d : %dn", 15, is_prime(15));
printf("%d : %dn", 17, is_prime(17));
printf("%d : %dn", 23, is_prime(23));
printf("%d : %dn", 25, is_prime(25));
return 0;
}

用C語言編寫判斷一個數是否是素數的程序 第6張