判斷素數的方法

2021-10-01 08:12:13 字數 1340 閱讀 5396

素數的定義:乙個大於1的自然數,除了1和它本身外,不能被其他自然數整除的素數叫素數。

單獨判讀輸入的數n是不是1和2,再從2到n-1判斷是否存在能被2整除的數,如果有就是素數,沒有就不是素數。

核心**如下:

#include

func

(int n)

return1;

}}intmain()

其中優化的乙個方法就是對於乙個正整數n,如果用二到根號n之間的整數去除,均無法整除,則為素數,否則就不是素數。

此方法就是將上面的for迴圈稍微改變一下,再加上#include。

改變如下:

for

(int i=

2;i<

sqrt

(n);i++

)return1;

}

例如找2-200內的所有素數:

1.首先先定義乙個陣列a,將2-200放入a[2]~a[200]中去。

2.第乙個數是素數,將後面2的整數倍的數全部篩去,篩去的置0。

3找出下乙個非0的數字a[i],它就是新的素數i。

4.篩去i的整數倍,置0。

5.若i小於200的平方根,則繼續尋找下乙個非0數。否則輸出2~200之間的素數。

#include

#include

intmain()

}for

(i=2

;i<

200;i++

)//輸出

if(a[i]

)printf

("%5d"

,i);

}

5以內只有1,2,3,5是素數,我們將在100以內的素數列出,發現它們都在6的倍數的左右。

例:(5,6,7),(11,12,13),(17,18,19)(23,24,**25**),(29,30,31),(**35**,36,37),(41,42,43),(47,48,49),

我們將會發下在6的倍數的左右兩邊除了5 的倍數以外的數為素數。

而在100以內大於5的數字內除去6的倍數的左右兩邊的數字後,剩下的數字為8,9,10,14,15,16,20,21,22,26,27,28.......以此類推,我們不難發現這些數字均為2或3的倍數。

綜上所述,我們要篩去2,3,5的倍數,然後6左右的數便為素數。

**如下:

#include

#include

intfunc

(int x)

}int

main()

第一次寫,如果有什麼不對請大佬指出,謝謝。

判斷素數的方法(孿生素數)

素數 質數prime number 定義為在大於1的自然數中,除了1和它本身以外不再有其他因數,素數有無窮多個。先來一張 2 200素數分布表 從2到 n整除判斷 public static boolean isprime int num for int i 2 i sqrt num i retur...

python判斷素數的方法簡書 判斷素數

素數的定義 素數 又稱質數。是大於1自然數中的除了自身和1以外不能別其他數整除的數字。第一種方法 利用這個素數的定義,我們可以得出第一種判斷素數的方法 int isprime1 int n int i 0 2是素數 if n 3 return n 1 當n不能被除了1和n自身整除的數外的數是素數 f...

素數的快速判斷方法

大於等於5的素數與6的倍數相鄰 所有自然數可以用集合a 表示,其中n 0,顯然,子集b 內的元素都不是素數,所以只有6n 1和6n 5可能是素數,素數一定可以用6n 1和6n 5其中的乙個形式表示,即大於等於5的素數與6的倍數相鄰 上面說到大於或等於5的素數一定可以用6n 1或者6n 5來表示,在判...