要计算与 N 互质且小于 N 的整数个数,我们可以简单地计算其ETF。但是,要计算与 N 互质但小于 M 的整数个数,其中 M < N,我们如何修改/计算它?我已经尝试了计算 ETF 的代码,但无法继续如何修改它以获得所需的结果。
代码:
int etf(int n)
{
int result = n;
int i;
for(i=2;i*i <= n;i++)
{
if (n % i == 0) result -= result / i;
while (n % i == 0) n /= i;
}
if (n > 1) result -= result / n;
return result;
}
谢谢