用C語言編寫判斷一個數是否是素數的程序
工具/材料
ubuntu,vim,gcc
操作方法
打開ubuntu並開啓一個終端,輸入命令vim is_prime.c,打開編輯頁面,輸入預處理指令#include<stdio.h>用於在主函數中調用判斷函數。然後定義一個函數int is_prime(int n),即判斷整數n是否爲素數。
首先,判斷這個數是否小於2.若是,則直接返回0,即表示它不是一個素數。
然後定義中間的因數i,初始值爲2。依次使n對i取餘數,看n能否整除i,然後令i自增直到i的平方大於n。在這過程中,如果遇到n能整除i,則說明n不是一個素數。如果循環能夠直到i的平方大於n才結束,說明n是一個素數。
接下來,我們使用主函數進行測試,使用printf("%d : %dn", n, is_prime(n))的格式進行輸出。如果輸出結果爲0,說明不爲素數;結果爲1,說明是一個素數。
測試的數據依次是2,4,9,15, 17, 23, 25。
退出編輯器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;
}
-
韓姓是貴族姓嗎?韓姓起源和來歷是什麼
導語:韓姓起源來自華夏師祖黃帝,是黃帝的孩子昌意生下了韓流,韓姓就至此流傳下來,所以韓姓也是貴族姓,韓姓並不是小姓,按照人口數量來排列的話排在第二十六位,現在這個姓氏大約有760萬人左右,大多分佈在山東、河北,和探祕志一起了解下吧。韓姓是貴族姓嗎中國姓氏是比較...
-
機械錶怎麼上弦
(01)機械錶上弦的方法取決於手錶是手動上弦還是自動上弦。手動上弦的機械錶:1.將手錶輕輕晃動幾下後放在耳邊聆聽裏面機芯的聲音,如果能聽到擺陀轉動發出沙沙的聲音,說明手錶是手動上弦的。(02)2.將錶冠拉出一格,露出發條孔。3.用手輕輕轉動錶冠,將發條上滿。上弦過程中...
-
撲街是什麼意思?粵語中罵人的詞,源自英文Poor guy
解答:撲街主要表達3種意思:1.原意是走路被絆倒,撲倒在馬路上;2.遊戲中角色死亡,或者指乞丐;3.粵語中的“仆街”同意,源自外語中的“poorguy”,本意是罵人,也可表達一種倒黴的意思。撲街是什麼意思?1.古文中撲街是撲倒在路上是指走路被絆倒,“撲”是撲倒,“街”是在街上...
-
皇族最純正的十個姓氏 這十個姓氏真正帶有皇室血統
導語:中華上下五千年,一直以來皇權都是處於至高無上的地位,只要和皇權可以捱上邊就是比較典型的皇親國戚了,而百家姓中皇族最純正的十個姓氏分別是張姓,李姓,王姓,黃姓,陳姓,楊姓,趙姓,周姓,吳姓,徐姓,和探祕志一起看看吧。1、張姓張姓是中國最尊貴的姓氏,是從姬姓起源的,據說...