學點C語言系列 03 判斷乙個數是不是素數

2021-10-04 18:48:30 字數 1716 閱讀 6452

寫在前面:「學點c語言系列」是新開的專欄,博主電子資訊工程專業畢業後,從事了4年硬體工程師,最近一次接觸c語言還是4年前的畢設,想重新系統的學習一下c語言,從最基本的hello world開始。

上兩篇部落格:

「學點c語言系列」01 求阿姆斯特朗數

「學點c語言系列」02 判斷年份是否為閏年

判斷乙個數是不是素數?素數也稱為質數,指這個數只能被1和這個數本身整除,不能被其他數整除,如11,13

將s依次被2~s-1之間的每乙個整數整除,如果都不能整除,則s為素數;

定義初始flag=0記錄依次整除的情況,能被整除的,flag+1;則判斷是素數的條件是:flag==0

int flag =0;

//定義乙個flag記錄整除的情況

if(s%i ==0)

#define _crt_secure_no_warnings 10

/*檔名:pdss.c

問題:素數判斷

*/#include

intmain()

}if(flag ==0)

else

return0;

}

編譯,輸入23,返回23是素數

請輸入乙個整數:23

23 是素數

請按任意鍵繼續.

..

編譯,輸入39,返回39不是素數

請輸入乙個整數:39

39 不是素數

請按任意鍵繼續.

..

將s依次除以 2~s

\sqrt

s​之間的每乙個整數,如果都不能整除,則s為素數;

s

\sqrt

s​用sqrt(s)表示,sqrt的定義是double __cdecl sqrt(_in_ double _x);定義變數時候需將double強制轉換為int;

g =

(int

)sqrt((

double

)s);

//double轉int

**實現如下:

#define _crt_secure_no_warnings 10

/*檔名:pdss1.c

問題:素數判斷

*/#include

#include

//新增數學函式庫

intmain()

if(i > g)

//for迴圈完成時i=g+1

else

return0;

}

編譯,輸入59,返回59是素數

請輸入乙個整數:59

59 是素數

請按任意鍵繼續.

..

永遠相信美好的事情即將發生!作者記得誠,寫於安徽合肥,時間2020-04-06 pm00:59

判斷乙個數是否是回文數

題目 定義回文數的概念如下 如果乙個非負數左右完全對應,則該數是回文數,如 121,22 如果乙個負數的絕對值左右完全對應,則該數是回文數,如 121,22 public static void main string args printrandm arr,3 1 5 4 system.out.p...

判斷乙個數是否是質數

乙個數如果可以進行因數分解,那麼分解的兩個數一定是乙個小於等於sqrt n 乙個大於等於sqrt n 因此遍歷到sqrt n 即可。因為如果sqrt n 左側找不到因數,右側也一定找不到因數。中心思想 遍歷n是否能被2到sqrt n 之間的數整除,如果不能則為質數。import math defis...

判斷乙個數是否是素數

素數釋義 曾稱質數。乙個大於1的正整數,如果除了1和它本身以外,不能被其他正整數整除,就叫素數。如2,3,5,7,11,13,17 public boolean isprime int n for int i 2 i從2開始,一直到小於其自身,依次判斷能否被n整除即可,能夠整除則不是質數,否則是質數...