int Euler (int n)
{
int res = n;
//任何合数的素因子,不大于
for (int i=2; i*i<=n; i++)
{
//第一次找到的必为素因子
if (n%i == 0)
{
n /= i;
res = res - res/i;
//把该因子全部约掉
while (n%i == 0)
n /= i;
}
}
//如果n≠1,也应该是素因子
if (n>1) res = res-res/n;
return res;
}
算法10.3 实现欧拉函数的算法
最新推荐文章于 2022-09-14 10:03:51 发布