c語言dn
⑴ 用C語言編寫判斷一個數是否是素數的程序
1、打開ubuntu並開啟一個終端,輸入命令vim is_prime.c,打開編輯頁面,輸入預處理指令#includestdio.h用於在主函數中調用判斷函數。然後定義一個函數int is_prime(int n),即判斷整數n是否為素數。
2、首先,判斷這個數是否小於2.若是,則直接返回0,即表示它不是一個素數。
3、然後定義中間的因數i,初始值為2。依次使n對i取余數,看n能否整除i,然後令i自增直到i的平方大於n。在這過程中,如果遇到n能整除i,則說明n不是一個素數。如果循環能夠直到i的平方大於n才結束,說明n是一個素數。
4、接下來,我們使用主函數進行測試,使用printf(%d : %dn, n, is_prime(n))的格式進行輸出。如果輸出結果為0,說明不為素數;結果為1,說明是一個素數。
測試的數據依次是2,4,9,15, 17, 23, 25。
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;
}
工具/材料
ubuntu,vim,gcc