inline int Eular(int n) // [1,n]范围内与n互质的数 { int last, num; last = num = n; for(register int i = 2; i * i <= n; i++) { if(!(last % i)) { while(!(last % i)) last /= i; num /= i; num *= (i - 1); // num *= (i - 1) / i // num *= 1 - 1 / i } } if(last > 1) // 还有一个质数因子 { num /= last; num *= (last - 1); } return num; }
转载于:https://www.cnblogs.com/kcn999/p/10222665.html