C語(yǔ)言100以內(nèi)的素?cái)?shù)(尋找質(zhì)數(shù)的算法及實(shí)現(xiàn))
一、什么是素?cái)?shù)
素?cái)?shù),也叫質(zhì)數(shù),是指只能被1和本身整除的自然數(shù),例如2、3、5、7、11等。
二、尋找質(zhì)數(shù)的算法
常見(jiàn)的尋找質(zhì)數(shù)的算法有兩種
1.試除法
試除法是簡(jiǎn)單的一種算法,即從2開(kāi)始,依次將待判斷的數(shù)除以2、3、4、5……直到它本身,如果在這個(gè)過(guò)程中沒(méi)有找到能夠整除這個(gè)數(shù)的因子,那么這個(gè)數(shù)就是質(zhì)數(shù)。
2.埃氏篩法
埃氏篩法是一種較高效的算法,它的基本思想是從2開(kāi)始,將每個(gè)質(zhì)數(shù)的倍數(shù)都標(biāo)記成合數(shù),直到100以內(nèi)的數(shù)都被標(biāo)記過(guò)一次,剩下的未被標(biāo)記的數(shù)就是質(zhì)數(shù)。
三、C語(yǔ)言實(shí)現(xiàn)
下面是C語(yǔ)言實(shí)現(xiàn)100以內(nèi)素?cái)?shù)的代碼
clude
tain()
{tee數(shù)組用于標(biāo)記是否是質(zhì)數(shù)
for (i = 2; i++)e[i] = 1; //先假設(shè)所有數(shù)都是質(zhì)數(shù)
for (i = 2; i++)e[i])
for (j = i i; j<= N; j += i) //將i的倍數(shù)標(biāo)記成合數(shù)e[j] = 0;tf");
for (i = 2; i++)e[i])tf("%d ", i);tf"); 0;
100以內(nèi)的素?cái)?shù)為
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
通過(guò)以上代碼,我們可以看到100以內(nèi)的所有素?cái)?shù)都被正確輸出了。
本文介紹了尋找質(zhì)數(shù)的兩種常見(jiàn)算法,并通過(guò)C語(yǔ)言實(shí)現(xiàn)了100以內(nèi)素?cái)?shù)的查找。尋找質(zhì)數(shù)是一個(gè)基礎(chǔ)但重要的算法,對(duì)于學(xué)習(xí)算法和編程的初學(xué)者來(lái)說(shuō),掌握這些算法有助于提高編程能力和算法思維。