单独求欧拉函数 #include <iostream> #include <cmath> using namespace std; int euler(int x) { int i, res = x; for(i = 2; i < (int)(sqrt(x * 1.0))+1; i++) { if(!(x % i)) res = res / i * (i-1); while(!(x % i)) x /= i; } if(x > 1) res = res / x * (x-1); return res; } int main() { int n; cin >> n; cout << euler(n) << endl; return 0; }