各位看官們,大家好,從今天開始,我們講大型章回體科技小說 :C栗子,也就是C語言實(shí)例。閑話休提, 言歸正轉(zhuǎn)。讓我們一起talk C栗子吧!
看官們,上一回中咱們說的是進(jìn)制轉(zhuǎn)換的例子,這一回咱們說的例子是:素?cái)?shù)。
素?cái)?shù)又叫質(zhì)數(shù),在大于1的自然數(shù)中,如果一個正整數(shù)除了1和它本身外,不能被其它自然數(shù)整除,那么這 個數(shù)就是一個素?cái)?shù)。素?cái)?shù)比較多,所以咱們例子中只展示從1到100這個范圍內(nèi)的素?cái)?shù)。
看官們覺得這個例子算是簡單,我也覺得比較簡單。只要把范圍內(nèi)的數(shù)從頭到尾遍歷一下,判斷是否能被 除1和自身以外的其它的數(shù)整除就可以。我專門說素?cái)?shù)這個例子是為想介紹另外一種方法,該方法可以節(jié)省 遍歷的時間,提高程序運(yùn)行效率。我在例子中使用的原理:假如有一個正整數(shù)n,除了1和它本身外,用從2 到正整數(shù)n的平方根之間所有的正整數(shù)數(shù)去除 n,如果n都不能被整除。那么正整數(shù)n就是素?cái)?shù)。使用該方法 可以減少遍歷的數(shù)目,進(jìn)而提高程序的效率。
看官們,詳細(xì)的代碼如下,大家可以參考:
1 /* **************************
2 * For Prime Number
3 * *************************/
4 #include<stdio.h>
5
6 #define N 100
7
8 int main()
9 {
10 int index,step;
11 int i = 0;
12 int res[N]= {0};
13
14 index = step = 0;
15
16 printf("show the PrimeNumber of [1--%d]i\n",N);
17
18 for(index=2; index <=N; ++index)
19 {
20 for(step=2; step*step <= N; ++step)
21 {
22 if( index != step && index % step == 0 ) //如果不第一個判斷條件,那么會有遺漏
23 break;
24 }
25
26 if(step*step > N)
27 {
28 res[i] = index;
29 ++i;
30 }
31 }
32
33 while(i-- >0)
34 printf("%d \n",res[i]);
35
36 return 0;
37 }
各位看官,關(guān)于素?cái)?shù)的例子咱們就說到這里。欲知后面還有什么例子,且聽下回分解。