标签:false 等价 prim 标准 display bool eps isp let
\(\varphi(n)=\)表示不超过 \(n\) 且与 \(n\) 互质的正整数的个数
\[\varphi(n)=n\cdot \prod_{i=1}^{s}(1-\frac{1}{p_i})\]
其中 \(n = {p_1}^{\alpha1} \cdot {p_2}^{\alpha2} \cdots {p_s}^{\alpha s} \cdot\) 是 \(n\) 的标准分解。
由此易见 \(\text{Euler}\) 函数是积性函数。
线性求 \(\text{Euler}\) 函数:
#define int long long
int phi[3000005];
int n=3000000;
bool mark[3000005];
int prime[1000005];
int tot;
void getphi()
{
phi[1]=1;
for(int i=2;i<=n;i++)
{
if(mark[i]==false)
{
prime[++tot]=i;
phi[i]=i-1;
}
for(int j=1;j<=tot;j++)
{
if(i*prime[j]>n)
{
break;
}
mark[i*prime[j]]=true;
if(i%prime[j]==0)
{
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
phi[i*prime[j]]=phi[i]*phi[prime[j]];
}
}
for(int i=1;i<=n;i++)
{
phi[i]+=phi[i-1];
}
}
\[ \mu(n)= \begin{cases} 1&n=1\\ 0&n\text{ 含有平方因子}\\ (-1)^k&k\text{ 为 }n\text{ 的本质不同质因子个数}\ \end{cases} \]
证明:
\[ \varepsilon(n)= \begin{cases} 1&n=1\\ 0&n\neq 1\ \end{cases} \]
其中 \(\displaystyle\varepsilon(n)=\sum_{d\mid n}\mu(d)\) 即 \(\varepsilon=\mu*1\)
设 \(\displaystyle n=\prod_{i=1}^k{p_i}^{c_i},n‘=\prod_{i=1}^k p_i\)
那么 \(\displaystyle\sum_{d\mid n}\mu(d)=\sum_{d\mid n‘}\mu(d)=\sum_{i=0}^k C_k^i\cdot(-1)^k\)
根据二项式定理,易知该式子的值在 \(k=0\) 即 \(n=1\) 时值为 \(1\) 否则为 \(0\) ,这也同时证明了 \(\displaystyle\sum_{d\mid n}\mu(d)=[n=1]\)
#define int long long
int mu[3000005];
int n=3000000;
bool mark[3000005];
int prime[1000005];
int tot;
void getmu()
{
mu[1]=1;
for(int i=2;i<=n;i++)
{
if(mark[i]==false)
{
prime[++tot]=i;
mu[i]=-1;
}
for(int j=1;j<=tot;j++)
{
if(i*prime[j]>n)
{
break;
}
mark[i*prime[j]]=true;
if(i%prime[j]==0)
{
mu[i*prime[j]]=0;
break;
}
mu[i*prime[j]]=-mu[i];
}
}
}
\(\text{ID}:\text{ID(i)=i}\)
\(\text{1}:\text{1(i)=1}\)
定义两个数论函数的\(\text{Dirichlet}\)卷积为:
\[(f*g)(n)=\sum_{d|n}({f(d)\times g(\frac{n}{d})}) \]
性质:\(\text{Dirichlet}\)卷积满足交换律和结合律。
单位元:\(\varepsilon\),\(\varepsilon(n)=[n==1]\),任何函数卷\(\varepsilon\)都为其本身.
\(1*\mu=\varepsilon\)
\(\mu * \text{ID} = \varphi\)
\(1*\text{ID}=\sigma\)
公式:设 \(f(n),g(n)\) 为两个数论函数。
如果有
\[ f(n)=\sum_{d\mid n}g(d) \]
那么有
\[ g(n)=\sum_{d\mid n}\mu(\frac{n}{d})f(d) \]
证明:
原命题等价于:已知 \(f=g*1\) ,证明 \(g=f*\mu\)
显然: \(f*\mu=g*1*\mu= g*\varepsilon=g\) (其中 \(1*\mu=\varepsilon\) )
同时,还有另一种\(\text{Mobius}\)反演:
如果有
\[ f(n)=\sum_{n\mid d}g(d) \]
那么有
\[ g(n)=\sum_{n\mid d}\mu(\frac{d}{n})f(d) \]
\[\sum_{i=1}^{n}{[gcd(i,n)==d]} \]
\[\ \ \ \ \ = \sum_{i=1}^{\frac{n}{d}}{[gcd(i,\frac{n}{d})==1]}\]
\[=\varphi(\frac{n}{d}) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \]
标签:false 等价 prim 标准 display bool eps isp let
原文地址:https://www.cnblogs.com/wasa855/p/10392439.html