模板 尤拉篩

2021-09-29 21:25:41 字數 804 閱讀 6579

思路:對於n以內質數的階乘,如果某個數大於等於p,那麼這個數的階乘%p一定等於0,於是答案為此數之前的質數的階乘之和mod p。

注意:我們在處理階乘的時候,一定只跑一次for迴圈,不要每次都從1開始乘,以小數的階乘為基礎,不然會t

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

using

namespace std;

typedef

long

long ll;

const

int maxn =

1e5+5;

const

int maxm =

1e8+1;

ll n, p;

bool vis[maxn]

;ll prime[maxn]

, cnt;

void

init()

void

is_prime()

}}intmain()

printf

("%lld\n"

, ans % p);}

return0;

}

尤拉函式線性篩模板

此模板主要用來求1 n n 1e6 以內的尤拉函式,順帶把素數也篩了出來.尤拉函式表示n以內與n互素的數,其中phi 1 1。這裡主要利用了尤拉函式的兩個性質 1.若p是x的因子,則e p x p e x 證明直接利用算數基本定理就行了。2.若p是素數,且x與p互素,即x,p都為素數 則e p x ...

尤拉函式線性篩(模板)

關於尤拉函式篩法,之前一直用的o n 2 演算法 phi 1 1 邊打表邊篩選 for int i 2 i 1005 i phi i i for int i 2 i 1005 i if phi i i for int j i j 1005 j i phi j phi j i i 1 其實如果資料小的...

尤拉函式 篩法 模板

記牢通式 x p1 1 p1 p2 1 p2 pn 1 pn int eular int n if x 1 res res x x 1 可能是最後乙個質數 return res 首先 性質 1.phi p p 1 因為質數p除了1以外的因數只有p,故1至p的整數只有p與p不互質 性質 2.如果i m...