思路:對於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...