補一下素數篩

2021-08-15 19:48:22 字數 772 閱讀 6709



陸歷川很熱愛數學,最近他學了質數,他被質數深深的吸引了,但是陸歷川有個習慣,他喜歡給一些東西編號,所以他決定給所有的質數編號,例如給2編號1,3編號2,5編號3........這樣2,3,5就是質數裡面的大當家,二當家和三當家了,陸歷川現在知道了這些編號,現在他會給你乙個數,他想知道這個數的所有的質因子裡面的最大編號是多少?

注:0和1的編號都是0。

乙個自然數n(0<= n <= 1000000)

多組輸入樣例

最大編號

123

45

012

13

#include#include#includeusing namespace std;

const int max = 1000005;

int mark[max];

int ret[max];

//int findprimr[max];

int main()

else

cnt++;

} }while(scanf("%d",&num) != eof)

printf("%d\n",ret[num]);

} return 0;

}

素數篩的考察以及根據這個題目進行的素數篩的優化,使得耗時降低,就是在篩的時候就去存每乙個數對應的最大質數編號,每一輪都會優化,就是我每篩出乙個質數,都會優化它本身以及他的倍數對應的最大編號為該質數,優化完畢後得到的結果可以直接進行輸出

補一下部落格

其實這是前幾天的工作了,一直沒有寫部落格,現在來補一下。上一次是把數獨的檢查工作做了,但是數獨生成方法一直沒有好的想法,也看了幾篇部落格,但是都不大好,有點的是不好解決重複的問題,有的是不好生成百萬數量規模的生成方法。但是前幾天再看時,第一篇搜到的部落格就是針對百萬資料規模的數獨生成方法,貌似與我們...

線性篩法(一) 素數篩法(一)

目錄所謂篩法是一種思想,就像名字一樣,篩去多餘的,篩去錯誤的。多數情況用陣列標記,複雜度看起來很大,但 跑起來確是越跑越快。把n以內素數全找出來 n 100000 大家一定想得到第一種方法,暴力,遍歷。暴力 include includeint isprime int n return 1 int ...

腦補一下etu,波特率

根據定義,在智慧卡上電復位的時候 1 etu 372 f。其中 f 代表讀寫裝置通過 clk 管腳提供給智慧卡的時鐘頻率,通常在1 5 mhz之間。372是什麼我們先不管。etu的單位是時間單位秒 毫秒 微秒都可以,等同於傳輸每個資料位所需的時間。這裡又引出乙個概念 波特率。例如 傳輸乙個位需要0....