線性篩及其擴充套件應用

2022-08-18 22:18:11 字數 883 閱讀 9174

好久沒寫部落格了。不過noip的努力一直沒有停止過~

今天學習了線性篩的擴充套件,正好時間有空,就來寫部落格了

線性篩思路還是比較簡單,即保證每個數隻被它最小的因數篩去一次,

先看裸的**:

#includeusing namespace std;

const int maxn=1000010;

int pri[maxn],fl[maxn],cnt;

void find_pri(){

fl[1]=true;

for(int i=2;i不多講了。

尤拉函式表示方法為

它滿足性質:

(具體證明就不寫了~)

所以上**

void find_pri(){

fl[1]=phi[1]=true;

for(int i=2;i3.線性篩與莫比烏斯函式

莫比烏斯函式是個奇怪的函式(好像只有莫比烏斯反演才會用到吧)。

它的定義式為

直接上**:

#includeusing namespace std;

const int maxn=1000010;

int pri[maxn],fl[maxn],cnt;

int mu[maxn];

void find_pri(){

fl[1]=mu[1]=1;

for(int i=2;i那麼線性篩的基本應用就是這些

線性篩及其應用

素數的線性篩法 is prime記錄當前下標的數是不是乙個素數 第一次篩掉2的倍數 第二次篩掉3的倍數 以此。當然如果我現在要篩掉14的倍數,一定是篩2 14 3 14 5 14 7 14。篩到7就可以停了 比7大的素數比如11 11 14 11 2 7 11 2 7 在22這個數的時候會被篩到的 ...

jzp線性篩及其簡單應用

前言 很久以前看過了線性篩,沒怎麼注意原理,但是後來發現線性篩還有很有用的。比如上次做的一道題就需要找出每個數的最小質因子,先篩再找就太慢了。一看線性篩發現就可以直接在篩的過程中處理出來了!今天又學習了屌炸天的jzp線性篩,可以在o n 的時間內求出尤拉函式,莫比烏斯函式等積性函式 原理 首先jzp...

線性篩法的應用

by qw 線性篩法最基礎的功能就是求 1,n 中的素數,以此為基礎,可以對他進行一些變形。變形後的線性 篩法可以實現許多其他的功能。下文中的tot均指一定區間內的質數個數 先看一道簡單的問題 求 1,n 中的m個數的最大質因子的序數 hdoj2136 這個問題可以利用線性篩法打乙個質數表,然後二分...