笔记数论1
欧拉老贼非人哉
若p为质数,且a,p互质则
显然
那么只要推出
使用线性筛扇欧拉老贼
筛素数,
bool st[N];int prime[N],phi[N],cnt;
void sss(int n) {
memset(st, 1, sizeof(st));
st[1] = 0;
for(int i = 2; i <= n; i++) {
if(st[i])prime[++cnt] = i,phi[i]=i-1;
for(int j = 1; j <= cnt && i*prime[j] <= n; j++) {
st[i*prime[j]] = 0;
if(i % prime[j] == 0){
phi[i*prime[j]]=prime[j]*phi[i];
break;
}else phi[i*prime[j]]=phi[i]*(prime[j]-1);
}
}
}
我也不知道他是来干司马德
const int N = 1001;
bool st[N];
int prime[N],a[N],d[N],cnt;
void sss(int n){
d[1]=1;
for(int i=2;i<=n;i++){
if(!st[i])prime[++cnt]=i,a[i]=1,d[i]=2;
for(int j=1;prime[j]<=n/i;j++){
int m=i*prime[j];st[m]=1;
if(i%prime[j]==0){
a[m]=a[i]+1,d[m]=d[i]/a[m]*(a[m]+1);
break;
}else a[m]=1,d[m]=(a[m]+1)*d[i];
}
}
}
莫比乌斯函数
定义 \mu(n)
- 当
n=1 \mu(n)=1 - 当
n 无平方数因数,且n=p_1p_2...p_k \mu(n)=(-1)^k - 当
n 有大于1的平方数因数\mu(n)=0
性质
对于任意正整数
求法
1.若
2.写不下去了好心人帮个忙qwq
int n,p[N],vis[N],cnt;
int mu[N];
void getmu(int n){
mu[i]=1;
for(int i=2;i<=n;i++){
if(vis[i])p[++cnt]=i,mu[i]=-1;
for(int j=1;i*p[j]<=n;j++){
int m=i*p[j];
vis[m]=1;
if(i%p[j]==0){
mu[m]=0;
break;
}else mu[m]=-mu[i];
}
}
}