fork download
  1. #include<bits/stdc++.h>
  2. #define int long long
  3. #define endl "\n"
  4. using namespace std;
  5. int eulerphi(int n)
  6. {
  7. int i,sqrtn=sqrt(n),phi=n;
  8. for(i=2;i<=sqrtn;i++)
  9. {
  10. if (n%i==0)
  11. {
  12. while (n%i==0) n/=i;
  13. phi=phi*(i-1)/i;
  14. }
  15. }
  16. if (n!=1) phi=phi*(n-1)/n;
  17. return phi;
  18. }
  19. signed main()
  20. {
  21. int n,x;
  22. cin>>n; while (n--)
  23. {
  24. cin>>x; cout<<eulerphi(x)<<endl;
  25. }
  26. return 0;
  27. }
  28.  
Success #stdin #stdout 0s 5308KB
stdin
5
1
2
3
4
5
stdout
1
1
2
2
4