概念
定义域为正整数的函数是数论函数。
设p,q互质,f[p*q]=f[p]*f[q],称f为积性函数。如约数,欧拉,莫比乌斯。
任意p,q,f[p*q]=f[p]*f[q],称f为完全积性函数。如1函数,即f[i]=1。
我们一般用线性筛就可以预处理积性函数。
欧拉phi
void phii() { phi[1]=1; for(int i=2;i<=maxn;i++) { if(!not_prime[i]) { prime[++tot]=i; phi[i]=i-1; } for(int j=1;j<=tot&&prime[j]*i<=maxn;j++) { not_prime[i*prime[j]]=1; if(i%prime[j]==0) { phi[i*prime[j]]=phi[i]*prime[j]; break; } else phi[i*prime[j]]=phi[i]*phi[prime[j]]; } } }