摘自刘汝佳的《算法竞赛入门经典》
void phi_table(int n,int *phi)
{
for(int i=2; i<=n; ++i)
phi[i]=0;
phi[1]=1;
for(int i=2; i<=n; ++i)
if(!phi[i])
for(int j=i; j<=n; j+=i)
{
if(!phi[j])
phi[j]=j;
phi[j]=phi[j]/i*(i-1);
}
}

本文介绍了一种使用筛法计算欧拉函数φ(n)的方法。该方法通过遍历从2到n的所有整数,并利用欧拉函数的性质进行优化,提高了计算效率。
3442

被折叠的 条评论
为什么被折叠?



