判斷乙個數是否為素數

2021-07-09 07:23:47 字數 832 閱讀 9823

判斷乙個數n是否是素數,只需要判斷它是否能被2到n之間的數整除就行了,若不能被整除,則說明是素數。考慮到某數大於n/2時,n不可能被該數整除,故只需遍歷2~n/2即可。更進一步,由合數定理可知,若乙個數是合數,則它的最小質因數必小於等於該數的平方根,由此可得更為高效的**。

/***如下*/

#include

#include

using

namespace

std;

int main()

if(i <= sqrt(n))

cout

<<"n is not a prime number!"

cout

<<"n is a prime number!"

《當所求的數值較大時,上述**依然會更為費時,而求素數最高效的演算法應為篩選法(埃拉託色尼篩選法):

(1)先把1刪除(現今數學界1既不是質數也不是合數)

(2)讀取佇列中當前最小的數2,然後把2的倍數刪去

(3)讀取佇列中當前最小的數3,然後把3的倍數刪去

(4)讀取佇列中當前最小的數5,然後把5的倍數刪去

(5)如上所述直到需求的範圍內所有的數均刪除或讀取

/*篩選法求素數的具體**,此處將不符合要求的數置零*/

#include

#include

using

namespace

std;

int main()

}for(i = 1,n = 0; i<= 1000; i++)

}}

判斷素數 Python判斷乙個數是否為素數

素數的定義 乙個數如果只能被1和自身整除,則該數為素數。如果用程式設計的思維思考,則是說,如果乙個數被比它小的數 1除外 整除後餘數為0,則說明這個數可以被其他數整除,則該數為合數,否則該數為質數。python 如下 注釋 range 的起始值應該設為2,如果起始值設為1,則會第一次列印說該數是合數...

判斷乙個數是否為質數(素數)

從鍵盤上輸入乙個數,判斷這個是數是否為質數 素數 質數 素數 除了1和它本身不能被其它數整數的數。如果 i,n 都是整數,那麼 i n 0,那麼就稱 i 是 n 的倍數,n 是 i 的約數或者因數,n 整除 i,i 被 n 整除。演算法 判斷乙個數是否質數 素數 只需判斷有沒有乙個數可以整除這個數就...

優化判斷乙個數是否為素數

1.問題描述 description 對任意給定的乙個正整數,判斷其是否為素數,並輸出判斷結果 input 輸入一行包含乙個正整數n,代表要判斷的數。output 如果n是素數,就輸出prime 如果n不是素數,就輸出not prime。sample input 97 sample output p...