你真的懂素數嗎?

2021-10-24 22:07:20 字數 1453 閱讀 8371

素數:即質數

定義:大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數(即除了1和本身沒有其他因子)

首先,我們先來看乙個數與其因子有什麼關係(除了本身的因子)?

因子<=數本身/2

如10 的因子:1、2、5

因為2*5=10 ; 5是10的1/2;如果a因子大於5,則b因子就必須是(1,2)即1和2之間的小數,顯然不可能;

public

static

void

main

(string[

] args)

else

}public

static

boolean

isprime

(int n)

}return flag;

}

那就可能有大佬問了 為什麼你遍歷那裡i如果是求某個數的所有因子方法可不能這樣!!

如:求某個數的所有因子?

public

static

void

main

(string[

] args)

}}

例2:遍歷列印100內的所有素數?

public

static

void

main

(string[

] args)}}

public

static

boolean

isprime

(int n)

}return b;

}

還有i<=math.sqrt(n)遍曆法求素數,

public

static

boolean

isprime

(int n)

}return b;

}

即遍歷到根號下n,然後取模判斷即可。前面是遍歷到n/2,這裡直接是只遍歷到√n 明顯快了很多。

那又有大佬問小白了,為啥子可以這樣嘞??

本小白陷入沉思……

看看下面~n√n

n的因子

6√6=2

1、2、3、6

10√10=3

1、2、5、10

20√20=4

1、2、4、5、10……

…發現n的因子在√n的左右都有,但是n一定有個因子<=√n;所以我們只需要遍歷到√n即可;

其他演算法什麼的小白這裡就木了,告辭

你真的懂迴圈嗎

好了今天我來講講什麼是迴圈吧,你又真的懂迴圈嗎?讓我來講講迴圈的細節吧和判斷吧 1 for迴圈樣式 for var i 0 i 5 i 它的條件表示式就是先寫for 在寫內部的條件,在js中宣告變數也是可以不加var直接就可以 for i 0 i 5 i 但這樣寫也有一點不對,因為i時區域性變數最好...

你真的懂程式設計嗎?

還記得自己剛學習程式設計的時候,是在大一學習c語言的時候,那時在學習程式設計的時候,一遇到一些問題就開始在網上或者書上找有沒有現成的程式。找到後就把它們稍作修改從而實現自己想要的功能,以為這就是程式設計。到後面自己學習微控制器程式設計的時候也是這樣,雖然我可以實現功能。但是就是感覺自己其實也沒做多少...

你真的懂 售罄率 嗎?

售罄率 是以 制銷售為主的行業 如服裝行業 的乙個常規指標,它的計算公式如下 售罄率 某段時間內的銷售數量 期初庫存數量 期中進貨數量 100 售罄率是檢驗商品消化速度的乙個指標,一般採取 制訂貨的企業,如鞋服行業用得比較多。根據銷售期的不一樣,一般有周售罄率 月售罄率 季售罄率 季末售罄率等。季末...