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;
}