最簡單易懂,運算速度也是非常快的C語言篩選法求素數

2021-10-21 21:23:35 字數 1006 閱讀 4745

我們知道乙個數無論他是素數還是合數,那麼他的倍數一定是合數!!!

贊同???

而合數c = 因數a x 因數b

比如16 = 1x16=2x8=4*4;

而[2,4]區間的所有數字的倍數都是合數,剩下的則就是素數了

這裡說的是大於1倍,比如3的倍數是6,9…不包括3

eg:

2 4 6 8 10 12 14 16

3 9 12 15

4 16

剩下 3 5 7 11 13 全是質數

同理比如81 = 9 * 9;那麼[2,9]的所有數字的倍數都是合數,剩下的就是質數

現在設計這個巧妙的迴圈

#include

int a[

1000001]=

;int

main()

比如這裡牛客網有個題目;

素數數量

c語言用這種解法,你會發現是所有人種最快的;

**:

#include

intmain()

;for

(i=2

;i<=

1000

;i++

)for

(i=2

;i<=

1000000

;i++

)int t;

scanf

("%d"

,&t)

;while

(t--

)return0;

}

最簡單易懂的raid

特點 平行儲存,將資料都分到每個硬碟裡面,一塊硬碟的損壞都會導致資料的不完整,不可用 磁碟數量 1塊或者n塊 磁碟容量 一共磁碟的總和 優點 讀寫效能比較高 缺點 無冗餘與備份,安全性比較低 應用環境 安全性要求不高的地方,比如圖形工作站 特點 映象儲存,就是將每乙個磁碟都寫入相同的資料,以保證使用...

最簡單易懂的堆排序

堆排序 a 堆排序是一種原地的 時間複雜度為o nlogn 的排序演算法.b 如何理解 堆 堆是一種特殊的樹 堆是乙個完全二叉樹 堆中每乙個節點的值都必須大於等於 或小於等於 其子樹中每個節點的值。對於每個節點的值都大於等於子樹中每個節點值的堆,我們叫做 大頂堆 對於每個節點的值都小於等於子樹中每個...

最簡單易懂的非對稱加密

北京的張三發了乙個快遞到廣州的李四,途中經過了上海,上海快遞中心出現了乙個黑客老王,他偷偷開啟了張三給李四的快遞,然後偷偷把裡邊的衣服剪爛,再按照原樣包裝好發往廣州,可以看到對於這樣簡單包裝的傳輸在中途是可以偷偷修改裡邊的東西。http的資料報是明文傳輸,也即是如果中途某個黑客嗅探到這個http包,...