質數查詢演算法優化

2022-09-03 16:03:23 字數 496 閱讀 8024

1.最初版:

由這個數從2開始除,直到這個數本身都沒有能夠除盡的數,則這個數是質數

2.第一步優化

①首先判斷是不是偶數,是偶數則不是質數

②基於第一步,將這個數從3開始除。除到這個數開方向下取整,如果沒有可以整除的數,則這個數是質數。

3.第二步優化

由所有的合數都可以分解成多個質數想乘的來

步驟:①首先判斷是否是偶數

②將這個數開方向下取整之前的質數存表

③將這個數依次除以表中的質數,如果表中沒有能夠除盡的數,則這個數是質數

4.第三步優化

在第三點上進行優化不用除以表中所有數,通過判斷個位數尋找需要除以的特定的質數。

舉例:判斷503是不是質數

①503不是偶數

②503開方向下取整的質數有3,5,7,11,13,17,19,23

③由503個位數判斷假如有質數因子則兩個因子的個位可能是1×3,7×9。然後去質數表中查詢個位為1,3,7,9的質數來除。

演算法 快速查詢質數

其實,找乙個質數,很簡單啊,就是全部遍歷一次嘛,但是!我們這裡講一下,快速求解的辦法好吧!對於給定的乙個數,求解這個數內的所有質數!首先,對於乙個數n,只要它根號n內的數,不能整除它,那麼它就肯定是zh質數,因為這個是乘法交換律,ab ba,哈哈哈 然後呢,我們對於n個數內,我們可以直接pai 排除...

最優化字串求質數演算法

最優化字串求質數演算法 string 被除數 2 除數 2 除數後 2 輸出 最小公倍集 string.join r n 讀文字記錄 system.environment.currentdirectory 求質數 最小公倍集.txt list讀被除數 讀文字記錄 system.environment...

演算法 質數,質因數,篩質數

質數在大於1的整數中,如果只包含1和本身這兩個約數,就被稱為質數,或者叫素數。有3中形式 由於sqrt 計算較慢。不推薦 bool is prime int n 由於i i有可能會大於n,而當n較大時,可能會爆int,從而成為負值。不推薦 bool is prime int n 推薦 試除法 boo...