求質數的其他方法

2021-06-05 20:21:24 字數 800 閱讀 1957

如果要求輸出1~n之間的所有質數,需要注意如下幾個方面:

(1)2是質數,單獨輸出

(2)只需測試奇數是否是質數

(3)如何判斷某個數x是否是質數,有如下幾種方法:

i. 測試x是否能被3~x/2的數整除,若沒有能整除的,則為質數,否則不是質數

ii. 測試x是否能被3~sqrt(x)之間的數整除,若沒有能整除的,則為質數,否則不是質數

iii. 測試x是否能被3~sqrt(x)之間的質數(需要記錄之前已經求得的質數)整除,

若沒有能整除的,則為質數,否則不是質數

有一種方法是通過篩選來輸出1~n之間的所有質數的,稱為埃式篩選法

可詳見:

方法:給出要篩數值的範圍n,找出

詳細列出演算法如下:

列出2以後的所有序列:

標出序列中的第乙個素數,也就是2,序列變成:

將剩下序列中,劃掉2的倍數(用紅色標出),序列變成:

如果現在這個序列中最大數小於最後乙個標出的素數的平方,那麼剩下的序列中所有的數都是素數,否則回到第二步。

本例中,因為25大於2的平方,我們返回第二步:

剩下的序列中第乙個素數是3,將主序列中3的倍數劃出(紅色),主序列變成:

我們得到的素數有:2,3

25仍然大於3的平方,所以我們還要返回第二步:

現在序列中第乙個素數是5,同樣將序列中5的倍數劃出,主序列成了:

我們得到的素數有:2 3 5 。

因為25等於5的平方,跳出迴圈.

結論:去掉紅色的數字,2到25之間的素數是:2 3 5 7 11 13 17 19 23。

jQuery其他方法

1.jquery拷貝物件 深拷貝 深拷貝把裡面的資料完全複製乙份給目標物件 會另開闢乙個內心空間 如果裡面有不衝突的屬性,會合併到一起。2.多庫共存 jquery使用 作為識別符號,隨著jquery的流行,其他js庫也會使用 作為識別符號,這樣一起使用會引起衝突。使jquery和其他的js庫不存在衝...

selenium 其他方法

coding utf 8 from selenium import webdriver import time from selenium.webdriver.common.keys import keys driver webdriver.chrome driver.get driver.maxi...

06 其他方法

1 isalive 執行緒是否存活 system.out.println thread.currentthread getname 存活 thread.currentthread isalive 2 setname 給執行緒起名字 myinfo mi newmyinfo thread t newth...